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] タブからこのカタログにアクセスできるようになります。
![]()
[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.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 |
|---|---|
読み込み |
○ |
作成/挿入 |
× |
更新 |
× |
マージ |
× |
削除 |
× |
