반응형
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_External Functions
Snowflake의 External Functions에 대해 알기 쉽게 설명해볼게요!
1. External Functions란?
- External Functions는 외부 서비스나 클라우드 기능을 Snowflake의 SQL 쿼리 안에서 직접 호출할 수 있도록 해주는 기능이에요.
- 쉽게 말해, Snowflake 내부에 없는 계산이나 기능을, 다른 서버나 API를 호출해서 처리할 수 있게 해주는 거죠.
- 이 기능을 이용하면, Snowflake 밖에 있는 외부 시스템과 실시간으로 데이터를 주고받거나, 외부에서 제공하는 특정 기능을 사용할 수 있어요.
2. External Functions의 필요성
- 외부 데이터를 실시간으로 조회: 예를 들어, 환율 정보를 제공하는 외부 API를 호출해서 최신 환율 데이터를 가져와 계산할 수 있어요.
- 복잡한 계산 및 머신러닝 모델: Snowflake 외부에서 복잡한 머신러닝 모델을 운영하고 있다면, 이를 호출해서 예측 결과를 받아볼 수 있어요.
- 서드파티 서비스와 통합: Snowflake와 다른 클라우드 서비스(AWS Lambda, Google Cloud Functions 등) 간에 통신이 필요한 경우에도 유용해요.
3. External Functions의 작동 방식
- External Function을 설정하면, Snowflake는 특정 SQL 쿼리를 실행할 때 외부 HTTP/REST API로 요청을 보내요.
- 그 결과를 받아서 쿼리 결과의 일부로 반환해 주는 방식이에요.
- 이를 위해서는 Snowflake와 외부 API가 서로 통신할 수 있도록 네트워크 연결과 보안 설정이 필요해요.
4. External Function 사용 예시
- 예시: AWS Lambda와 연동하여 데이터 변환하기
sqlCREATE OR REPLACE EXTERNAL FUNCTION analyze_text(text STRING) RETURNS STRING API_INTEGRATION = 'my_api_integration' HEADERS = ( 'x-api-key' = 'your-api-key' ) AS 'https://your-lambda-url.amazonaws.com/prod/analyze';
-
sqlSELECT analyze_text('Hello Snowflake!');
- 예를 들어, AWS Lambda 함수를 만들어서 텍스트를 분석하는 기능을 구현했다고 해볼게요. Snowflake의 데이터를 분석하기 위해, Snowflake에서 Lambda 함수를 호출하는 External Function을 만들 수 있어요.
5. External Functions의 구성 요소
- API Integration: 외부 시스템과 연결하기 위해 필요한 API 설정이에요. 외부 함수가 어떤 API와 어떻게 통신할지 정의해요.
- 외부 서비스(예: AWS Lambda, GCP Cloud Functions): External Function이 호출할 실제 함수나 서비스예요. 외부에서 처리할 로직을 여기에 정의하죠.
- 보안 설정: Snowflake가 외부 API와 안전하게 통신할 수 있도록, 인증 토큰이나 보안 키를 설정해요. 데이터가 오가는 과정에서 보안이 중요한 이유죠.
6. External Functions와 UDF의 차이점
특징UDF (User Defined Function)External Function
처리 위치 | Snowflake 내부에서 처리 | 외부 서버나 클라우드 서비스에서 처리 |
복잡한 로직 | SQL이나 JavaScript로 작성된 간단한 로직 | 외부의 다양한 API와 서비스 이용 가능 |
사용 사례 | 데이터 변환, 간단한 수식 계산 | 머신러닝 모델 호출, 외부 데이터 가져오기 |
네트워크 필요성 | Snowflake 내부에서만 동작 | 네트워크를 통해 외부 서비스와 통신 |
7. 비유로 이해하기
- External Functions는 마치 레스토랑의 배달 서비스 같아요:
- 레스토랑 안에서 대부분의 요리를 만들지만(즉, UDF로 처리할 수 있는 작업들), 때로는 특별한 요리를 제공받기 위해 외부 식당에 요청할 수 있어요.
- 고객이 특별한 디저트를 주문했는데, 레스토랑 내부에는 그 디저트를 만들 방법이 없을 때, 레스토랑에서 외부 디저트 가게에 배달 요청을 보내는 거죠.
- 외부 디저트 가게에서 디저트를 만들어 레스토랑으로 가져오면, 이를 고객에게 서빙하는 방식이에요.
8. External Functions 사용 시 주의할 점
- 네트워크 비용: 외부로 데이터를 전송하거나 받아올 때 네트워크 비용이 발생할 수 있어요. 호출 빈도와 데이터 양을 신중히 고려해야 해요.
- 속도: 외부 API를 호출하고 응답을 받을 때까지 시간이 걸리기 때문에, 쿼리 성능에 영향을 줄 수 있어요. 실시간으로 처리해야 하는 작업에는 신중하게 사용해야 해요.
- 보안: 외부 API와 통신할 때는 API 키나 보안 토큰을 통해 안전하게 연결을 설정해야 해요. 보안이 잘못되면 민감한 데이터가 노출될 수 있어요.
9. 정리
External Functions는 Snowflake에서 외부 서비스와의 통합을 가능하게 하는 강력한 도구예요. 이를 통해 Snowflake에서 바로 외부 API를 호출하거나 복잡한 로직을 외부에서 처리할 수 있죠. UDF가 내부에서 반복 작업을 처리하는 도구라면, External Functions는 외부의 더 복잡한 작업을 처리하기 위한 다리 역할을 한다고 보면 돼요.
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_External Functions
반응형
'데이터 애널리스트 업무 이해하기' 카테고리의 다른 글
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Sequences (2) | 2024.10.12 |
---|---|
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Stored Procedure (0) | 2024.10.12 |
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_UFDs (0) | 2024.10.12 |
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_객체(object) (3) | 2024.10.12 |
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_GET DDL (1) | 2024.10.12 |