USER MANUALS

Snowflake Open Catalog

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

注釈

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

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

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

Create Snowflake Open Catalog Views From MPP Catalog

[From MPP Catalog] での 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=xxxxxxxxxx  # 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

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

プロパティ

プロパティ名

説明

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

組み込み MPP からのアクセス用にプリンシパルが作成されている場合に 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 組み込み MPP クラスタに提供しなければならないことがあります。

たとえば、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 組み込み MPP でサポートされる操作の概要を示します。

操作

Iceberg

読み込み

作成/挿入

×

更新

×

マージ

×

削除

×

Add feedback