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;
Copy

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';
Copy

선택적으로 AUTO_REFRESH = TRUE 로 지정하여 테이블 메타데이터의 자동 새로 고침을 활성화할 수 있습니다. 자세한 내용은 Apache Iceberg™ 테이블 자동 새로 고침 섹션을 참조하십시오.

참고

원격 카탈로그에서 테이블 또는 네임스페이스 목록을 검색하려면 다음 함수를 사용하면 됩니다.

4단계: Snowflake를 사용하여 테이블 쿼리

이제 Snowflake를 사용하여 Open Catalog 에서 테이블을 쿼리할 수 있습니다. 쿼리 결과를 다른 Snowflake 테이블과 조인할 수도 있습니다.

SELECT id, date
  FROM open_catalog_iceberg_table
  LIMIT 10;
Copy