USER MANUALS

Iceberg

Apache Iceberg は、大規模な分析データセットの高性能テーブル形式です。Iceberg テーブルは、スキーマの進化、パーティションの進化、およびテーブルバージョンのロールバックを実行でき、テーブルの書き換えや移行は必要ありません。

Denodo 組み込み MPP は、Iceberg テーブルにアクセスするために 組み込み Hive メタストア に接続される、 iceberg という名前の事前定義されているカタログとともに配布されます。

iceberg.properties
connector.name=iceberg

# Embedded Hive Metastore
hive.metastore.uri=thrift://hive-metastore:9083

Iceberg テーブルをクエリするには、Denodo 組み込み MPP で Iceberg テーブルを作成する必要があります。Denodo で 組み込みデータソース を使用して グラフィカル に Iceberg テーブルを確認し、Denodo 組み込み MPP で登録して、Denodo で基本ビューを作成します。

Explore Iceberg tables

Iceberg テーブルの確認

重要

グラフィカル に Iceberg テーブルを確認するには、Denodo エンタープライズプラスサブスクリプションバンドルが必要です。オブジェクトストレージをグラフィカルに接続する方法の詳細については、 Parquet、Delta、Iceberg 形式のオブジェクトストレージデータ で確認できます。

注釈

Iceberg は制限付きのカタログであるため、組み込み MPP データソースの [From MPP Catalogs] タブには表示されません。

Iceberg および組み込み MPP Iceberg コネクターは、一意のスナップショット ID で指定されるテーブルスナップショットを使用したタイムトラベルをサポートします。スナップショット ID は、 $snapshots メタデータテーブルに保存されます。ストアドプロシージャの ROLLBACK_ICEBERG_VIEW_TO_SNAPSHOTGET_ICEBERG_VIEW_SNAPSHOTS を使用して、テーブルの状態を以前のスナップショット ID にロールバックできます。

機能

Denodo 組み込み MPP が提供する Iceberg テーブルを扱う機能を以下に示します。

制限事項

Polaris の内部カタログへの接続

Polaris Catalog は Iceberg 用のオープンソースのカタログであり、Iceberg のオープンな REST カタログ仕様を実装しています。Polaris Catalog の目標は、Presto、Spark、Snowflake などの複数のエンジンが同じデータセットを読み書きできる共有データレイヤーを作成することです。組み込み MPP は、Polaris の内部カタログに接続して Iceberg テーブルを読み書きできます。

新しいカタログを定義して Polaris に接続し、Iceberg テーブルにアクセスするには、 prestocluster\presto\conf\catalog にカタログプロパティファイルを追加します。

Polaris Catalog の構成
connector.name=iceberg
iceberg.catalog.type=rest
iceberg.rest.uri=https://xxxxx.snowflakecomputing.com/polaris/api/catalog
iceberg.rest.auth.type=OAUTH2
iceberg.rest.auth.oauth2.token=<generatedToken>
iceberg.catalog.warehouse=your_catalog_name
  • iceberg.catalog.type: rest に設定します。Polaris Catalog は、Iceberg のオープンな REST カタログ仕様を実装しているためです。

  • iceberg.rest.uri: Polaris Catalog のエンドポイントです。

  • iceberg.rest.auth.oauth2.token: OAUTH2 認証に使用するトークンです。次のリクエストで取得できます。

    curl -i -X POST https://xxxxxx.snowflakecomputing.com/polaris/api/catalog/v1/oauth/tokens
    -d 'grant_type=client_credentials&client_id=<client_id>=&client_secret=<client_secret>&scope=PRINCIPAL_ROLE:ALL'
    

    client_id および client_secret は、新しいプリンシパルの作成時に Polaris から返される OAuth2 資格情報です。

  • iceberg.catalog.warehouse: 接続する Polaris Catalog の名前です。

トラブルシューティング

ERROR: Presto or VDP receives an error: Invalid namespace

原因

Iceberg コネクター構成で設定された OAuth2 トークンの有効期限が終了しています。

解決策

Polaris の内部カタログへの接続 」セクションの手順に従ってトークンを再生成します。

ERROR: Presto or VDP receives an error Request was not authenticated

原因

Iceberg コネクター構成で設定された OAuth2 トークンの有効期限が終了しています。

解決策

Polaris の内部カタログへの接続 」セクションの手順に従ってトークンを再生成します。

Add feedback