Snowflake를 사용하여 Snowflake Open Catalog 의 테이블 쿼리하기¶
외부 카탈로그 를 사용하는 Apache Iceberg™ 테이블을 생성하여 Snowflake Open Catalog 에 등록된 테이블을 쿼리할 수 있습니다.
이 테이블은 Snowflake Open Catalog 의 Iceberg 테이블을 나타내며 읽기 전용 액세스를 제공합니다.
전제 조건¶
시작하기 전에 다음이 필요합니다.
Open Catalog 로 등록된 Iceberg 테이블.
Snowflake가 Open Catalog 에 연결할 때 사용할 수 있는 서비스 연결. 역할 및 권한을 설정한 기존 서비스 연결을 사용하거나 Snowflake에 대한 서비스 연결을 구성 할 수 있습니다. 새로운 서비스 연결을 구성하는 경우 해당 연결에 대한 액세스 제어도 구성해야 합니다.
1단계: Snowflake에서 외부 볼륨 만들기¶
아직 없다면 Snowflake에 외부 볼륨을 생성하여 시작합니다. 이 볼륨은 테이블 데이터와 메타데이터를 저장하는 클라우드 저장소 위치에 액세스할 수 있게 해줍니다.
클라우드 저장소 서비스에 대한 지침을 완료합니다.
2단계: Open Catalog 에 대한 카탈로그 통합 만들기¶
그런 다음 CREATE CATALOG INTEGRATION 명령을 사용하여 서비스 연결 자격 증명을 사용하여 Open Catalog 에 연결하기 위해 OAuth를 사용하는 Snowflake에서 카탈로그 통합을 생성합니다.
CREATE OR REPLACE CATALOG INTEGRATION open_catalog_int
CATALOG_SOURCE = POLARIS
TABLE_FORMAT = ICEBERG
CATALOG_NAMESPACE= 'myOpenCatalogNamespace'
REST_CONFIG = (
CATALOG_URI ='https://my_account.snowflakecomputing.com/polaris/api/catalog'
WAREHOUSE = 'myOpenCatalogName'
)
REST_AUTHENTICATION = (
TYPE = OAUTH
OAUTH_CLIENT_ID = 'my-client-id'
OAUTH_CLIENT_SECRET = 'my-client-secret'
OAUTH_ALLOWED_SCOPES = ( 'PRINCIPAL_ROLE:ALL' )
)
ENABLED = TRUE;
3단계: 외부 관리 테이블 만들기¶
이전에 구성한 외부 볼륨과 카탈로그 통합을 사용하여 Snowflake에 Iceberg 테이블을 생성합니다.
CATALOG_TABLE_NAME의 경우 Open Catalog 에 표시된 대로 테이블 이름을 지정합니다.
CREATE ICEBERG TABLE open_catalog_iceberg_table
CATALOG = 'open_catalog_int'
EXTERNAL_VOLUME = 'my_external_volume'
CATALOG_TABLE_NAME = 'my_iceberg_table';
선택적으로 AUTO_REFRESH = TRUE
로 지정하여 테이블 메타데이터의 자동 새로 고침을 활성화할 수 있습니다. 자세한 내용은 Apache Iceberg™ 테이블 자동 새로 고침 섹션을 참조하십시오.
참고
원격 카탈로그에서 테이블 또는 네임스페이스 목록을 검색하려면 다음 함수를 사용하면 됩니다.
4단계: Snowflake를 사용하여 테이블 쿼리¶
이제 Snowflake를 사용하여 Open Catalog 에서 테이블을 쿼리할 수 있습니다. 쿼리 결과를 다른 Snowflake 테이블과 조인할 수도 있습니다.
SELECT id, date
FROM open_catalog_iceberg_table
LIMIT 10;