Query existing Apache Iceberg tables#

このガイドでは、ハイブリッドマネージャーHMレイクハウスクラスターから既存のApache Icebergテーブルを照会する方法について説明します。

Lakehouseクラスターをオブジェクトストレージに保存されているIcebergテーブルに接続し、PGAAを使用してSQLクエリーを実行できます。

Iceberg統合の背景については、 Apache Iceberg in Hybrid Manager を参照してください。

ゴール#

このガイドを完了すると、次のことを行います。

チェック Icebergデータを指すPGFSストレージの場所を定義できること チェック IcebergテーブルをPostgres SQLに公開するPGAAリーダーテーブルを作成できること チェックSQLベースの分析と既存のIcebergテーブルへのBIアクセスのロックを解除します チェック Postgresツールとユーザーを有効にする他のシステムによって作成されたIcebergデータを照会する

これを使用する場合#

次の場合にこのガイドに従う必要があります。

  • Spark、Trino、Flink、PGDオフロード、またはその他のシステムによって書き込まれたIcebergテーブルが既にあります

  • ハイブリッドマネージャーのLakehouseクラスターを使用してこのデータを照会したい

  • BIツールまたはPostgresクライアントをIcebergデータに接続したい

  • パフォーマンスをテストしているか、既存のIcebergデータセットとのLakehouse統合を検証しています。

前提条件#

  • HMプロビジョニングされたEDB Postgres Lakehouseクラスター

  • S3互換オブジェクトストレージの既存のApache Icebergテーブル

  • 適切なストレージ権限必要な場合

  • version-hint.textまたはvX.metadata.jsonのいずれかを含むIcebergテーブルルートへのパス

ステップ#

1.PGFSストレージの場所を定義する#

Lakehouseクラスターに接続し、PGFSストレージの場所を定義します。

例

SELECT pgfs.create_storage_location(
name => my_s3_iceberg_data,
url => s3://your-bucket/path/to/iceberg,
options => {},
credentials => {"access_key_id": "...", "secret_access_key": "..."}
);

2. IcebergのPGAA外部テーブルを作成します#

CREATE TABLE public.my_sales_iceberg_data (
    sales_id INT,
    sales_date DATE,
    sales_amount NUMERIC
)
USING PGAA
WITH (
    pgaa.storage_location = my_s3_iceberg_data,
    pgaa.path = sales_records/iceberg_table_root,
    pgaa.format = iceberg
);

これにより、IcebergテーブルがPostgres SQLに公開されます。

CREATE TABLE public.my_sales_iceberg_data ()
USING PGAA
WITH (
pgaa.storage_location = my_s3_iceberg_data,
pgaa.path = sales_records/iceberg_table_root,
pgaa.format = iceberg
);

注カタログで管理されていないIcebergテーブルの場合、pgaa.pathは通常、version-hint.textファイルが存在するディレクトリを指すか、vX.metadata.jsonファイルを直接指します。

3. Icebergテーブルを照会します#

標準のSQLを使用してクエリーを実行します。

例

SELECT * FROM public.my_sales_iceberg_data
WHERE sales_region = North America
LIMIT 100;

注#

  • Lakehouseクラスターは、高速なIcebergクエリーのためのベクトル化クエリエンジンを使用します

  • ファイルベースのIcebergテーブルを照会するためにカタログ接続は必要ありません

  • Icebergテーブルがカタログ管理されている場合、代替フローについては Configure an Iceberg REST catalog connection を参照してください

次のステップ#

Iceberg外部テーブルを作成し、クエリを実行しました。

アーキテクチャの概要については、 Analytics in Hybrid Manager を参照してください。