すべてのプロダクト
Search
ドキュメントセンター

DataWorks:Hologres 動的テーブルの使用

最終更新日:Mar 14, 2026

Hologres 動的テーブルは、増分データ更新を自動的に実行し、クエリを高速化する強力な機能です。DataWorks の データカタログ では、Hologres 動的テーブルを管理するための直感的なビジュアルインターフェイスが提供されます。DataWorks を使用することで、複雑なデータ定義言語(DDL)ステートメントを記述することなく、動的テーブルの作成、構成、監視、および管理が可能です。これにより、リアルタイムおよびニアリアルタイムのデータアプリケーション構築プロセスが簡素化されます。

制限事項

  • Hologres インスタンスは V3.1 以降 である必要があります。

  • Hologres 動的テーブルの機能および制限事項について詳しくは、「動的テーブルの対応機能と制限事項」をご参照ください。

事前準備

  • 新しいバージョンのData Development (Data Studio) を使用する を選択した DataWorks ワークスペースを作成し、Hologres エンジンを含むコンピューティングリソースグループをアタッチします。詳細については、「ワークスペースの構成」および「Resource Management」をご参照ください。

  • DataWorks 内に Hologres データソースを作成し、接続性テストが正常に完了することを確認します。詳細については、「Hologres コンピューティングリソースのアタッチ」をご参照ください。

クイックスタート:自動更新型動的テーブルの作成

このクイックスタートでは、非パーティション化テーブル の動的テーブルを作成する手順を説明します。このテーブルは、ソーステーブル orders から注文データを自動的かつ増分的に集計し、データが 5 分以内に更新されることを保証します。

ステップ 1:データの準備

開始する前に、Hologres データベース内にソーステーブルを準備してください。増分更新を有効にするには、ソーステーブルでバイナリロギング(binlog)を有効化する必要があります。以下の SQL ステートメントを DataWorks の Hologres SQL ノードまたは任意の Hologres クライアントで実行して、orders という名前の注文テーブルを作成します。

-- ソーステーブルを作成し、増分更新をサポートするために Binlog を有効化
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    user_name TEXT,
    price FLOAT,
    order_time TIMESTAMPTZ
) WITH (
    binlog_level = 'replica', -- 要点:Binlog の有効化
    binlog_ttl = '86400'      -- Binlog の保持期間(秒単位)。例:1 日
);

-- 初期データを挿入
INSERT INTO orders VALUES 
(1, 101, 'Alice', 99.9, NOW()),
(2, 102, 'Bob', 19.5, NOW()),
(3, 101, 'Alice', 25.0, NOW());

ステップ 2:動的テーブル作成ウィザードへ移動

  1. DataWorks コンソールの ワークスペース ページに移動します。上部のナビゲーションバーから目的のリージョンを選択します。目的のワークスペースを見つけ、操作 列の ショートカット > Data Studio を選択します。

  2. 左側のナビゲーションウィンドウで、image アイコンをクリックして データカタログ モジュールを開きます。

  3. [データカタログ] エリアで、対象のHologresインスタンスを見つけ、フォルダを展開し、[動的テーブル] の横にあるimage アイコンを**クリック**して、動的テーブル作成ページを開きます。

    説明
    • 標準モードのワークスペースを使用している場合、Hologres の データカタログ 下に 開発用 データベースインスタンスと 本番用 データベースインスタンスが表示されます。Hologres 動的テーブルは、まず開発用データベースで作成・テストを行い、期待通りに動作することを確認した後に、本番環境で作成してください。

    • 標準モードのワークスペースでは、開発用データベースで作成した動的テーブルは、本番用データベースに自動同期されません。これらのテーブルを本番用データベースで照会・利用するには、本番用データベースにも同一の Hologres 動的テーブルを作成する必要があります。

ステップ 3:クエリ論理の定義とプリコンパイル(重要ステップ)

動的テーブル作成ページを開いたら、クエリ論理を入力し、プリコンパイルを実行します。

  1. 基本情報を入力

    • 動的テーブル名:一意のテーブル名を入力します(例:dt_user_orders_agg)。

    • 説明:テーブルの目的を入力します(例:「ユーザー別注文統計の集計」)。

  2. データ生成 SQL の記述フィールド情報 領域内の データ生成 SQL タブで、動的テーブルのデータ論理を定義する SELECT クエリを記述します。

    重要

    SELECT ステートメントのみを入力してください。CREATE DYNAMIC TABLE DDL コマンドは含めないでください。システムが自動的に設定を解析し、右側に完全な DDL ステートメントを表示します。

    SELECT 
        user_id,
        user_name,
        COUNT(*) AS order_count,
        SUM(price) AS total_price
    FROM public.orders
    GROUP BY user_id, user_name;
  3. コードのプリコンパイル

    コードを記述した後、SQL エディター上部の プリコンパイル ボタンをクリックします。プリコンパイル は、Hologres エンジンとリアルタイムで連携するコア機能であり、以下のタスクを実行します:

    • 構文検証:記述した SELECT ステートメントが SQL 標準に準拠しているかをチェックします。

    • 更新モードの推定:クエリ論理およびソーステーブルの属性を分析し、サポートされる更新モード(自動、増分、完全)を判断します。

    • フィールドの解析:構文が正しい場合、動的テーブルの出力フィールド、データ型、その他の詳細を自動的に解析します。

    プリコンパイルのフィードバック

    • 成功:構文が正しいことが示され、サポートされる更新モードが一覧表示されます。その後、構成を進めることができます。

    • 失敗:SQL に誤りがある場合や、動的テーブルの要件を満たさない論理の場合、システムから明確なエラーメッセージが提供されます。メッセージに基づいて SQL を修正し、再度プリコンパイルを実行してください。

  4. (任意)フィールド詳細の表示および編集

    • プリコンパイルが成功した後、フィールド詳細 タブをクリックします。

    • ここでは、システムが解析したすべてのフィールド、データ型、NOT NULL 属性を確認できます。また、説明 列に各フィールドのコメントを追加することで、メタデータの可読性を向上させることもできます。

パーティションや高度なパラメーターの構成は、この段階では不要です。パラメーターの説明については、「付録:構成項目の説明」をご参照ください。

ステップ 4:データ更新ポリシーの構成

プリコンパイルが成功した後、ページ右側の 更新ポリシー パネルで設定を構成できます。

説明

パラメーターの詳細については、「Hologres の更新モードおよびリソース」をご参照ください。

  1. 基本パラメーター

    • テーブルタイプ:パーティションフィールドが選択されていないため、システムが自動的に 非パーティション化テーブル として識別します。

    • 更新ポリシー増分更新 を選択して、低遅延のデータ同期を実現します。

    • 更新トリガーメソッドHologres 自動更新 を選択します。

    • データの自動更新:デフォルト値の はい のままにします。

    • データ新鮮度5 分 に設定します。このパラメーターは、最大許容データ遅延を定義します。システムは、受信データに基づいて動的に更新をトリガーし、動的テーブルとソーステーブル間の遅延を常に 5 分以内に保ちます。

    • 基盤テーブルの増分更新消費モードstream を選択します。これは、低遅延ストリーム消費を実現する推奨モードです。

    • Hologres コンピューティングリソースサーバーレスリソース を選択します。これにより、更新タスクが貴重なインスタンスリソースを占有せず、リソースの隔離が実現されます。

  2. 高度なパラメーター(任意):このセクションでは、特殊な GUC パラメーターを設定します。通常はデフォルト設定のままにしておけば問題ありません。詳細については、「GUC パラメーター」をご参照ください。

ステップ 5:公開

  1. すべての構成が正しく設定されたことを確認した後、ページ上部の 公開 ボタンをクリックします。

  2. 表示される確認ダイアログボックスで、再度 公開 をクリックします。

これで、Hologres 動的テーブルの作成および公開が正常に完了しました。ソーステーブル orders に新しいデータが挿入または更新されると、動的テーブル dt_user_orders_agg の集計結果が約 5 分以内に自動的に更新されます。

高度な例:日次パーティション化動的テーブルの作成

この例では、パーティションテーブル の動的テーブルを作成する手順を説明します。このテーブルは、ユーザー登録テーブルから毎日の新規ユーザーを集計し、パーティションを自動的に作成および管理します。

ステップ 1:データの準備

まず、ユーザー登録情報を記録する users という名前のソーステーブルが必要です。このテーブルには、パーティション化に使用するタイムスタンプフィールドを含める必要があり、またバイナリロギング(binlog)を有効化する必要があります。

-- ユーザー登録テーブルを作成し、Binlog を有効化
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    user_name TEXT,
    region TEXT,
    registration_time TIMESTAMPTZ  -- ユーザー登録時刻(TIMESTAMPTZ 型)
) WITH (
    binlog_level = 'replica',
    binlog_ttl = '86400'
);

-- テストデータを挿入。日付は現在のタイムスタンプに置き換えてください。
INSERT INTO users VALUES 
(1, 'Alice', 'CN-Hangzhou', '2026-02-27 10:00:00+08'),
(2, 'Bob', 'CN-Shanghai', '2026-02-27 14:30:00+08'),
(3, 'Charlie', 'CN-Beijing', (NOW() - INTERVAL '1 day')::TIMESTAMPTZ);

ステップ 2:動的テーブル作成ウィザードへ移動

  1. DataWorks コンソールの ワークスペース ページに移動します。上部のナビゲーションバーから目的のリージョンを選択します。目的のワークスペースを見つけ、操作 列の ショートカット > Data Studio を選択します。

  2. 左側のナビゲーションウィンドウで、image アイコンをクリックして データカタログ モジュールを開きます。

  3. [データカタログ] エリアで、ターゲットの Hologres インスタンスを探し、フォルダを展開して、[動的テーブル] の横にある image アイコンをクリックして動的テーブルの作成ページを開きます。

ステップ 3:クエリ論理の定義とプリコンパイル

  1. 基本情報を入力

    • 動的テーブル名dwd_user_new_user_detail_di

    • 説明:日次新規ユーザー詳細統計

  2. データ生成 SQL の記述

    users テーブルからすべてのユーザーレコードを抽出する SQL ステートメントを記述します。時間による手動フィルターは、動的テーブルのパーティショニングメカニズムが自動的に処理するため、WHERE 句において不要です。

    SELECT 
        user_id,
        user_name,
        region,
        registration_time, -- 照会のために元の正確な時刻フィールドを保持可能
        CAST(registration_time AS DATE) AS ds -- [要点] タイムスタンプを DATE 型に変換し、パーティションキーとして使用
    FROM public.users;
  3. コードのプリコンパイルプリコンパイル ボタンをクリックします。プリコンパイルが成功すると、システムがフィールド情報を解析します。

ステップ 4:パーティションフィールドの選択(重要ステップ)

パーティション化テーブルを作成するうえでの鍵となるステップです。

  • パーティションフィールド情報 領域で、パーティションフィールド のドロップダウンリストをクリックします。

  • 新規フィールド ds をパーティションフィールドとして選択します。

パーティションフィールドを選択すると、DataWorks が自動的にパーティション化テーブルとして識別し、パーティション関連の構成項目を表示します。

ステップ 5:パーティションおよび更新ポリシーの構成

説明

パラメーターの詳細については、「Hologres のパーティションプロパティ」をご参照ください。

  1. パーティション構成

    • パーティションプロパティ:自動的に 論理パーティション として表示されます。

    • パーティションフォーマットyyyy-mm-dd を選択します。このフォーマットは、ds というパーティションキー(DATE 型)のフォーマットと一致します。

    • パーティション更新範囲7 日 に設定します。

    • パーティション管理 > パーティションの有効期限30 日 に設定します。

  2. 更新ポリシー構成

    • 更新ポリシー自動更新 を選択します。

    • 更新トリガーメソッドHologres 自動更新 を選択します。

    • データ新鮮度10 分 に設定します。

    • Hologres コンピューティングリソースサーバーレスリソース を選択します。

ステップ 6:公開

ページ上部の 公開 ボタンをクリックします。

次のステップおよび検証

  1. パーティションの表示:テーブルが公開された後、dwd_user_new_user_detail_di テーブルを展開します。日付に基づいて作成されたパーティションサブテーブル(例:2026-02-27)が表示されます。

  2. データの検証

    • Hologres SQL ノードを作成し、users テーブルに当日の新しいデータを挿入します:

      INSERT INTO users VALUES (4, 'David', 'CN-Shenzhen', '2026-02-27 18:00:00+08');
    • 約 10 分待った後、新しいパーティションキー ds を使用して、より効率的なクエリを実行します:

      -- 効率的なクエリ方法:パーティションキーで直接フィルター
      -- 即座に検証する場合は、テーブルを手動で更新できます:REFRESH DYNAMIC TABLE dwd_user_new_user_detail_di PARTITION (ds = '2026-02-27');
      SELECT * FROM dwd_user_new_user_detail_di WHERE ds = '2026-02-27';

      新しいユーザー「David」が当日のパーティションに正常に追加されたことが確認できます。

      image

動的テーブルの表示、監視、および管理

動的テーブルはアクティブな状態であるため、その運用ステータスを監視することが重要です。

  1. 詳細ページの開く:データカタログ内の動的テーブル一覧で、作成した dt_user_orders_agg テーブルをクリックします。

  2. 静的情報の表示

    • 詳細:フィールド一覧、データ型、プライマリキーなどのテーブルスキーマ情報を表示します。

    • 基本情報:所有者、データ更新ロジック(SQL)、更新ポリシーなどのテーブルの主要構成を確認します。

    • DDL:動的テーブル作成に使用された完全な DDL ステートメントを表示およびコピーします。これは、移行またはレプリケーションに役立ちます。

  3. 出力情報の監視(主な運用・保守ページ)

    出力情報 タブに切り替えます。これは、動的テーブルの運用ステータスを監視するためのキーページです。

    • 操作ボタン

      • 完全テーブルへの変換:テーブルの更新モードを永続的に 完全更新 に変更し、自動更新を停止します。自動 または 増分 更新モードでのみ表示されます。

      • 更新の一時停止 / 更新の再開:Hologres による自動更新を一時的に停止または再開します。

      • 手動更新:データを即時に更新するための更新タスクを手動でトリガーします。

    • 更新中のデータ:更新タスクが実行中の場合、PID、クエリ ID、ステータス、実行時間などのリアルタイム情報をここで表示します。

    • 出力履歴:すべての更新タスクの履歴を記録します。トラブルシューティングに非常に有用です。

      • クエリ ID:過去の更新タスクの固有 ID です。Hologres での詳細なトラブルシューティングに使用できます。

      • 更新モード:例:増分更新

      • ステータス:タスクの最終ステータス(成功/失敗)。

      • 実行時間(秒):タスクの総実行時間です。

      • データ消費遅延(秒):(増分更新のみ)動的テーブルのデータ処理遅延を測定します。

      • コンピューティングリソース…:タスクによって消費されたリソースを記録します。コスト分析およびパフォーマンス最適化に役立ちます。

動的テーブルの変更および削除

  • 動的テーブルの変更:データカタログで動的テーブルを見つけ、詳細ページの右上隅にある 編集 ボタンをクリックして編集ページを開きます。ほとんどの構成項目を変更できます。変更可能なパラメーターについては、「動的テーブルの変更」をご参照ください。

  • 動的テーブルの削除:データカタログ内の動的テーブル一覧で、対象のテーブルを右クリックし、削除 を選択します。

付録:構成項目の説明

1.基本情報、フィールド情報、およびパーティションフィールド

  • フィールド情報(SQL):動的テーブルのデータソースを定義する SELECT クエリです。プリコンパイル は必須ステップです。

  • パーティションフィールド

    • 未選択非パーティション化テーブル を作成します。

    • 日時/日付型フィールドを選択パーティションテーブル を作成します。システムが自動的にパーティション化テーブル構成モードに切り替わります。

2.データ更新構成(コア)

一般構成
  • 更新ポリシー

    • 自動更新(推奨) Hologres がパフォーマンスと使いやすさのバランスを考慮し、増分更新または完全更新を自動的に決定します。

    • 増分更新:増分更新のみを強制します。データ新鮮度が極めて重要なシナリオに適しています。

    • 完全更新:更新ごとにデータを完全に再計算します。プライマリキーまたは Binlog がないソーステーブル、または複雑なクエリ論理に適しています。

更新トリガーメソッド

現在、Hologres 自動更新 のみがサポートされています。

  • データの自動更新:マスタースイッチです。

  • データ新鮮度:許容される最大データ遅延を定義します。これは自動更新をトリガーするコア条件です。

  • 基盤テーブルの増分更新消費モード:Binlog の消費方法を定義します。stream がデフォルトかつ推奨モードです。

  • Hologres コンピューティングリソース

    • サーバーレスリソース(推奨) Hologres サーバーレスリソースを使用して更新を実行します。これにより、インスタンス自体のコンピューティングリソースを占有せず、リソースの隔離が実現されます。

    • このインスタンスのリソース(ローカル):インスタンス自体のコンピューティングリソースを使用します。仮想ウェアハウス型(V4.0+)のインスタンスの場合、特定の計算グループを選択できます。

3.パーティション構成(パーティションテーブルのみ表示)

パーティションフィールドを選択すると、以下の構成項目が追加されます。すべての新しい動的テーブルは 論理パーティション です。

  • パーティションフォーマット(必須) パーティションフィールドの値に基づいてパーティションを生成する方法を定義します。たとえば、フィールド型が TIMESTAMPTZ で、フォーマットが yyyy-mm-dd に設定されている場合、日次パーティションが作成されます。

  • パーティション更新範囲:自動更新の対象となるアクティブパーティションの範囲を定義します。たとえば、「過去 7 日間」と設定した場合、Hologres は過去 7 日間のパーティションのみを自動的に更新します。それより古いパーティションは自動更新されず、リソースを節約できます。

  • パーティション管理(デフォルトで折りたたまれています):

    • パーティションの有効期限:パーティションのライフサイクル(TTL)を設定します。有効期限が切れたパーティションは自動的に削除されます。

    • パーティションのホットデータ保持期間:ホットデータとコールドデータの階層化ストレージと併用し、パーティションデータがホットストレージ(SSD)に保持される期間を定義します。

4.高度な設定(テーブルプロパティ)

これらは、動的テーブル自体に適用される物理プロパティであり、標準の Hologres テーブルの設定と同様です。

パラメーター

説明

ストレージモード

Hologres では、列のストア行のストア行・列ハイブリッドストア の 3 種類のストレージモードがサポートされています。デフォルトモードは 列のストア です。詳細については、「テーブルのストレージ形式:列のストア、行のストア、および行・列ハイブリッドストア」をご参照ください。

  • 列のストアは、さまざまな OLAP シナリオにおける複雑なクエリに適しています。

  • 行のストアは、プライマリキーに基づくキーバリュー(KV)クエリシナリオに適しています。

  • 行・列ハイブリッドストアは、列のストアと行のストアの両方が使用可能なシナリオに適しています。

テーブルグループ

Hologres データソース内で内部テーブルを作成する際に生成される テーブルグループ の名前を選択します。詳細については、「テーブルグループの管理」をご参照ください。

ストレージポリシー

Hologres では、標準ストレージ(ホットストレージ)および低頻度アクセスストレージ(コールドストレージ)の 2 種類のストレージポリシーがサポートされています。

  • ホットストレージ(全 SSD ホットストレージとも呼ばれる)は、Hologres のデフォルトストレージポリシーであり、低遅延・高パフォーマンスのデータアクセス要件を満たします。ほとんどのシナリオでは、標準ストレージが最も効果的かつコスト効率の高い選択肢です。

  • コールドストレージ(全 HDD コールドストレージとも呼ばれる)は、低コストで低頻度アクセスのデータを保存する要件を満たします。遅延やアクセス頻度に対してあまり敏感でない、非常に大規模なデータセットに適しています。

詳細については、「ホットデータとコールドデータの階層化ストレージ」をご参照ください。

テーブルデータのライフサイクル

動的テーブルのカスタム最大生存時間を設定します。

Binlog

Hologres バイナリログへのサブスクリプションを有効(replica)または無効(none)にするかを選択します。デフォルトでは、この機能は無効になっています。詳細については、「Hologres Binlog へのサブスクリプション」をご参照ください。

Binlog のライフサイクル

Binlog を replica に設定してサブスクリプションを有効化した後のみ、Hologres バイナリログの最大保存ライフサイクルを設定できます。詳細については、「Hologres Binlog へのサブスクリプション」をご参照ください。

フィールドプロパティ

フィールドプロパティを設定します。これには、分散カラムセグメントカラムクラスタリングカラムビットマップカラム辞書エンコーディングカラム の選択が含まれます。各 フィールド名 に対して、ページ上の説明に基づいてプロパティを構成します。詳細については、「内部テーブルの管理」をご参照ください。