ユーザーマニュアル

Snowflake Open Catalog

Snowflake Open Catalog を使用して Iceberg テーブルを管理しており、これらのテーブルに Denodo Lakehouse Accelerator からアクセスしたい場合、Snowflake Open Catalog を外部メタストアとして使用するように Denodo Lakehouse Accelerator を構成できます。

注釈

Iceberg テーブルに Denodo Lakehouse Accelerator を介してアクセスする場合、Snowflake Open Catalog で管理されている Iceberg テーブルは読み込み専用になることに注意してください。

Snowflake Open Catalog に接続するには、Denodo Lakehouse Accelerator の構成内に新しいカタログを定義する必要があります。

新しいカタログを定義する際に 推奨される方法 は、 values.yaml ファイルで presto.catalog プロパティを使用する方法です。このアプローチを使用すると、管理とバージョンのアップグレードが簡素化されます。新しいカタログを構成すると、Denodo Lakehouse Accelerator データソースの [External Catalogs] タブからこのカタログにアクセスできるようになります。

Create Snowflake Open Catalog Views From External Catalog

[External Catalogs] での Snowflake Open Catalog のビューの作成

以下に、Snowflake Open Catalog に接続するように values.yaml 内で構成された、 snowflakeopencatalog という名前の Iceberg カタログの例を示します。

  catalog:
    snowflakeopencatalog: |-
      connector.name=iceberg
      iceberg.catalog.type=rest
      iceberg.rest.uri=https://xxxxxxx.snowflakecomputing.com/polaris/api/catalog
      iceberg.rest.auth.type=OAUTH2
      iceberg.rest.auth.oauth2.credential=${ENV:OAUTH2_CREDENTIAL}  # key:secret
      iceberg.rest.auth.oauth2.scope=PRINCIPAL_ROLE:ALL
      iceberg.catalog.warehouse=external_catalog
      iceberg.rest.case-insensitive-name-matching=true
      hive.pushdown-filter-enabled=true
      hive.parquet-batch-read-optimization-enabled=true

OAUTH2 資格情報は、Kubernetes シークレットの定義 mpp-credentials に新しい環境変数を追加することによって構成できます。このシークレットは、Denodo Lakehouse Accelerator のデプロイの資格情報を管理するために使用されます。 mpp-credentials の構成の詳細については、 Denodo Lakehouse Accelerator の「デプロイ」 のページを参照してください。

次のコマンドは、シークレット内に OAUTH2_CREDENTIAL という名前の新しい環境変数を定義する方法を示しています。

kubectl create secret generic mpp-credentials --from-literal=OAUTH2_CREDENTIAL=<credential>

シークレット内に環境変数を定義したら、次の構文を使用して、 values.yaml ファイルまたはカタログのプロパティファイル内でその環境変数を参照できます。

snowflakeopencatalog: |-
  .
  .
  iceberg.rest.auth.oauth2.credential=${ENV:OAUTH2_CREDENTIAL}
  .
  .

values.yaml を使用する代わりに、Denodo Lakehouse Accelerator の Helm チャートの presto/conf/catalog/ フォルダ内に別個のプロパティファイルを直接作成することによって、新しいカタログを定義することもできます (例: presto/conf/catalog/snowflakeopencatalog.properties)。このファイル名 (この例では snowflakeopencatalog) が、Denodo Lakehouse Accelerator でのカタログ名になります。

プロパティ

プロパティ名

説明

iceberg.rest.uri

REST API エンドポイント URI (必須)。例: https://xxxxxxx.snowflakecomputing.com/polaris/api/catalog

iceberg.rest.auth.type

使用する認証タイプ。利用可能な値は NONE または OAUTH2 です (デフォルト: NONE)。OAUTH2 では、資格情報またはトークンのいずれかが必要です。

iceberg.rest.auth.oauth2.credential

Denodo Lakehouse Accelerator からのアクセス用にプリンシパルが作成されている場合に Snowflake Open Catalog から返される OAuth2 資格情報 (キー:シークレットの形式)。

iceberg.rest.auth.oauth2.scope

OAUTH2 認証で使用するスコープ。このプロパティは iceberg.rest.auth.oauth2.credential を使用している場合にのみ適用できます。例: PRINCIPAL_ROLE:ALL `

iceberg.catalog.warehouse

接続先の Snowflake Open Catalog の名前。

iceberg.rest.case-insensitive-name-matching

名前空間およびテーブル名の大文字と小文字を一致させるかどうかを指定します (デフォルト: false)。Snowflake のスキーマとテーブルは通常大文字であるため、true に設定することをお勧めします。

注釈

Snowflake Open Catalog で Iceberg テーブルのメタデータを管理している場合、通常、実際のデータファイルは外部オブジェクトストレージ (例: AWS S3) に存在しています。Snowflake Open Catalog の構成と Iceberg データの場所によっては、その特定のオブジェクトストレージの資格情報を Denodo Lakehouse Accelerator クラスタに提供しなければならないことがあります。

たとえば、Iceberg データが AWS S3 に保存されていて、明示的な資格情報が必要な場合 (たとえば、EKS Pod Identity、サービスアカウントの IAM ロール、または EC2 インスタンスプロファイルを使用していない場合)、Kubernetes シークレットを次のように作成する必要があります。

kubectl create secret generic mpp-credentials
--from-literal=METASTORE_DB_PASSWORD=hive
--from-literal=AWS_ACCESS_KEY_ID=awsaccesskeyid
--from-literal=AWS_SECRET_ACCESS_KEY=awssecretaccesskey

さらに、以下を設定して values.yaml でセキュリティ資格情報を有効化する必要もあります。

objectStorage:
  aws:
    securityCredentials:
      enabled: true

サポートされる操作

次の表に、Snowflake Open Catalog に接続する場合に Denodo Lakehouse Accelerator でサポートされる操作の概要を示します。

操作

Iceberg

読み込み

○

作成/挿入

×

更新

×

マージ

×

削除

×

フィードバックを追加