외부 스테이지 및 Snowpipe 자동화를 위한 Azure 비공개 연결¶
이 항목에서는 다음 Snowflake 기능에 대해 아웃바운드 비공개 연결 을 설정하는 구성 세부 정보를 제공합니다.
외부 스테이지를 사용하여 Microsoft Azure에서 대량 로딩.
Microsoft Azure Blob 저장소용 Snowpipe 자동화하기
비공개 연결에 대해 대량 로딩 및 Snowpipe 자동화를 구성하는 것과 공용 네트워크 트래픽에 대해 구성하는 것의 차이점은 다음과 같습니다.
요구 사항인 저장소 통합, 스테이지 또는 알림 통합을 위해
USE_PRIVATELINK_ENDPOINT = TRUE
를 설정합니다.외부 스테이지를 위한 비공개 연결 엔드포인트 만들기(대량 로딩 및 Snowpipe 자동화).
알림 통합을 위한 비공개 연결 엔드포인트 만들기(Snowpipe 자동화에만 해당).
아웃바운드 비공개 연결 비용¶
처리된 총 데이터와 함께 각 비공개 연결 엔드포인트에 대한 비용을 지불합니다. 이러한 품목의 가격은 Snowflake서비스 사용 테이블 을 참조하십시오.
ACCOUNT_USAGE 및 ORGANIZATION_USAGE 스키마에서 청구 뷰를 쿼리할 때 다음 서비스 유형을 필터링하여 이러한 항목의 비용을 탐색할 수 있습니다.
OUTBOUND_PRIVATELINK_ENDPOINT
OUTBOUND_PRIVATELINK_DATA_PROCESSED
예를 들어 USAGE_IN_CURRENCY_DAILY 뷰를 쿼리하고 이러한 서비스 유형을 필터링할 수 있습니다.
고려 사항¶
동일한 저장소 계정에 대해 아웃바운드 공용 연결과 아웃바운드 비공개 연결을 구성할 수 있습니다. 이렇게 하려면 아웃바운드 공용 연결을 위한 전용 저장소 통합을 만들고 USE_PRIVATELINK_ENDPOINT = FALSE
를 지정합니다.
비공개 연결 속성¶
저장소 통합 또는 외부 스테이지의 USE_PRIVATELINK_ENDPOINT
속성은 비공개 연결을 통해 액세스할지 아니면 공용 네트워크를 경유하여 액세스할지를 결정합니다. 비공개 연결을 사용하려면 USE_PRIVATELINK_ENDPOINT = TRUE
를 설정하십시오.
USE_PRIVATELINK_ENDPOINT = TRUE
를 지정하는 저장소 통합을 참조하는 스테이지가 비공개 엔드포인트 구성을 상속합니다. 따라서 비공개 연결을 사용하도록 구성된 저장소 통합을 사용하는 경우 스테이지에서 USE_PRIVATELINK_ENDPOINT
속성을 지정할 필요가 없으며, USE_PRIVATELINK_ENDPOINT
속성을 설정하도록 스테이지를 수정할 수 없습니다.
외부 스테이지 액세스 구성하기¶
이 단계는 아웃바운드 비공개 연결을 저장소 통합과 함께 사용하여 Microsoft Azure 에서 외부 스테이지로 데이터를 언로딩하는 고유한 단계입니다. 저장소 통합을 참조하는 대신 스테이지의 CREDENTIALS
속성을 사용하는 경우 플로우를 수정해야 합니다.
이러한 단계는 대량 로딩과 Snowpipe 자동화 모두에 필수입니다.
Snowflake에서 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 Snowflake VNet 에서 비공개 연결 엔드포인트를 프로비저닝해 Snowflake가 비공개 연결을 사용하여 외부 Blob 저장소 계정에 연결할 수 있도록 합니다.
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo', 'mystorageaccount.blob.core.windows.net', 'blob' );
이 함수는 비공개 엔드포인트를 호스트 이름에 바인딩하여 저장소 통합에서 비공개 엔드포인트를 사용하여 스토리지 위치에 연결할 수 있도록 합니다.
Azure Portal에서 Microsoft Azure Blob 저장소 리소스의 소유자로서 비공개 엔드포인트를 승인합니다. 자세한 내용은 승인 프로세스 섹션을 참조하십시오.
Snowflake에서 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 함수를 호출합니다.
함수의 출력에
"status": "APPROVED
가 포함되면 Snowflake에서 저장소 계정으로의 연결이 비공개 연결을 사용할 수 있습니다(아웃바운드 비공개 연결을 위해 필요한 다른 Snowflake 오브젝트가 활성화된 후)."APPROVED"
상태를 대기하는 동안 다음 단계를 계속 진행할 수 있습니다.저장소 통합을 생성하고
USE_PRIVATELINK_ENDPOINT
속성을 지정해야 합니다.CREATE OR REPLACE STORAGE INTEGRATION outbound_private_link_int TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = AZURE AZURE_TENANT_ID = 'cc2909f2-ed22-4c89-8e5d-bdc40e5eac26' STORAGE_ALLOWED_LOCATIONS = ('azure://mystorageaccount.blob.core.windows.net/mycontainer/snowflake_privatelink_external_stage_test/') USE_PRIVATELINK_ENDPOINT = TRUE ENABLED = TRUE;
저장소 통합을 참조하는 외부 스테이지를 만듭니다.
CREATE OR REPLACE STAGE my_storage_private_stage URL = 'azure://mystorageaccount.blob.core.windows.net/mycontainer/snowflake_privatelink_external_stage_test/' STORAGE_INTEGRATION = outbound_private_link_int;
프라이빗 엔드포인트가
"APPROVED"
상태가 되면 Snowflake에서 외부 스테이지로 데이터를 언로딩하는 것을 테스트합니다.COPY INTO @my_storage_private_stage FROM mytable FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Microsoft Azure 스테이지에서 결과를 봅니다.
알림 통합을 위한 구문 업데이트¶
Microsoft Azure Blob 저장소용 Snowpipe를 자동화하려면 알림 통합을 생성해야 합니다. 다음 구문 업데이트를 통해 비공개 연결에 대한 알림 통합을 구성할 수 있습니다.
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [ IF NOT EXISTS ] <name>
...
USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE }
Snowpipe 자동화 구성하기¶
이 섹션에서는 Microsoft Azure Blob 저장소용 Snowpipe 자동화하기 에 설명된 프로시저를 수정하여 비공개 연결을 통해 Snowpipe 자동화를 구현하는 방법을 중점적으로 설명합니다. 유일한 차이점은 비공개 연결 엔드포인트를 프로비저닝하고 저장소 통합 및 알림 통합의 USE_PRIVATELINK_ENDPOINT
속성을 구성하는 것입니다.
이 문서의 앞부분 에 설명된 대로 전용 비공개 연결 엔드포인트와 함께 저장소 통합 및 스테이지를 생성합니다.
Microsoft Azure Blob 스토리지용 Snowpipe 자동화 항목에 설명된 대로 저장소 위치에 대한 Snowflake 액세스 권한을 부여 합니다.
Microsoft Azure Blob 스토리지용 Snowpipe 자동화 항목에 설명된 대로 Event Grid 구독을 구성 합니다.
Snowflake에서 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 Snowflake VNet 에서 비공개 엔드포인트를 프로비저닝해 Snowflake가 비공개 연결을 사용하여 Azure 큐에 연결할 수 있도록 합니다.
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/mystorageaccount', 'mystorageaccount.queue.core.windows.net', 'queue' );
Azure Portal에서 Microsoft Azure 저장소 리소스의 소유자로서 비공개 엔드포인트를 승인합니다. 자세한 내용은 승인 프로세스 섹션을 참조하십시오.
Snowflake에서 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 함수를 호출합니다.
함수의 출력에
"status": "APPROVED
가 포함되면 Snowflake에서 저장소 계정으로의 연결이 비공개 연결을 사용할 수 있습니다(아웃바운드 비공개 연결을 위해 필요한 다른 Snowflake 오브젝트가 활성화된 후).중요
다음 단계를 계속하기 전에 상태가
APPROVED
가 될 때까지 기다려야 합니다.Microsoft Azure Blob 스토리지용 Snowpipe 자동화 항목에 설명된 대로 저장소 큐 URL 및 테넌트 ID 를 검색 합니다.
알림 통합을 만들고
USE_PRIVATELINK_ENDPOINT
속성을 지정해야 합니다.CREATE OR REPLACE NOTIFICATION INTEGRATION ni_pl ENABLED = TRUE TYPE = QUEUE NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE AZURE_STORAGE_QUEUE_PRIMARY_URI = "https://storageaccount.queue.core.windows.net/queuename" AZURE_TENANT_ID = '00000000-0000-0000-0000-000000000000' USE_PRIVATELINK_ENDPOINT = TRUE;
Microsoft Azure Blob 스토리지용 Snowpipe 자동화 항목에 설명된 대로 저장소 큐에 대한 Snowflake 액세스 권한을 부여 합니다.
Microsoft Azure Blob 스토리지용 Snowpipe 자동화 항목에 설명된 대로 자동 수집이 활성화된 파이프를 생성 합니다.
비공개 연결 비활성화하기¶
비공개 연결을 비활성화하는 프로세스는 엔드포인트가 저장소 통합, 외부 스테이지 또는 알림 통합을 위해 프로비저닝되었는지 여부에 따라 달라집니다.
- 저장소 통합/외부 스테이지
외부 스테이지에 비공개 연결 엔드포인트가 더 이상 필요하지 않은 경우 스테이지 또는 저장소 통합에서
USE_PRIVATELINK_ENDPOINT
속성을 설정 해제하고 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하십시오.- 알림 통합
저장소 통합 및 외부 스테이지와 달리 알림 통합의
USE_PRIVATELINK_ENDPOINT
속성은 설정 해제할 수 없습니다. 비공개 연결이 더 이상 필요하지 않은 경우 알림 통합을 삭제한 다음 새 알림을 생성해야 합니다. 알림 통합을 다시 생성한 후 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT 시스템 함수를 호출하여 엔드포인트의 프로비저닝을 해제할 수 있습니다.