DataWorks データカタログは Hologres 動的テーブルエンジンを統合し、動的テーブル、スケジューリング依存関係、およびタスクを管理するための一連のビジュアルツールを提供します。これにより、DataWorks で Hologres 動的テーブルを作成して使用できます。
前提条件
ワークスペースが作成され、[Data Studio (新バージョン) を使用] オプションが選択され、リソースグループがワークスペースにアタッチされています。詳細については、「ワークスペースの作成」をご参照ください。
Hologres データソースが作成されている。詳細については、「Hologres 計算リソースのアタッチ」をご参照ください。
Hologres 計算リソースがワークスペースにアタッチされ、接続性テストに合格している。詳細については、「計算リソースのアタッチ」をご参照ください。
制限
Hologres インスタンスは V3.0.18 以降である必要があります。
動的テーブルの制限の詳細については、「動的テーブルでサポートされる機能と制限」をご参照ください。
データの準備
テストテーブルを作成し、Hologres インスタンスにテストデータを追加します。次のコードは例を示しています。
CREATE TABLE tb_order(
order_id int PRIMARY KEY,
title VARCHAR(255),
price FLOAT ,
payment FLOAT ,
order_time TIMESTAMP
)WITH (
orientation = 'row',
clustering_key = 'order_id',
binlog_level = 'replica',
binlog_ttl = '86400'
);
INSERT INTO tb_order SELECT 1252555,'book',12.36,12.36,'2024-12-19 09:00:05';
INSERT INTO tb_order SELECT 1252556,'pen',22.36,22.36,'2024-12-19 17:00:05';
INSERT INTO tb_order SELECT 1252557,'role',36.36,36.36,'2024-12-19 17:10:05';テスト中にサンプルコードの時刻を現在のビジネス時刻に置き換えてください。そうしないと、Hologres クエリ文を使用して動的テーブルを作成するときにテストデータを取得できない場合があります。
データカタログに移動
DataWorks コンソールの ワークスペースページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[アクション] 列で を選択します。
左側のナビゲーションウィンドウで、
アイコンをクリックして [データカタログ] に移動します。
動的テーブルの作成
[データカタログ] エリアで、対象の Hologres インスタンスを見つけ、ディレクトリを展開し、[動的テーブル] の右側にある
アイコンをクリックして動的テーブルの作成ページを開きます。説明標準モードのワークスペースを使用する場合、Hologres [データカタログ] の下に [開発] データベースインスタンスと [本番] データベースインスタンスがリストされます。まず開発データベースで Hologres 動的テーブルを作成してテストすることをお勧めします。テーブルが期待どおりに機能することを確認した後、本番環境で作成できます。
標準モードのワークスペースでは、開発データベースで作成した動的テーブルは、本番データベースに自動的に同期されません。本番データベースでこれらのテーブルをクエリして使用するには、本番データベースに同じ Hologres 動的テーブルを作成する必要があります。

[動的テーブルの作成] ページで、次の手順を実行して動的テーブルを作成します。
[基本情報] セクションで、パラメーターを設定します。
動的テーブルの [テーブル名] と [説明] を指定します。
[フィールド情報] セクションで、設定を構成します。
[SQL 開発] タブの [フィールド情報] エリアで、次のサンプルコードをエディターに追加します。
SELECT t.order_id, t.title, t.price, t.day_time, COUNT(*) AS order_num FROM ( SELECT order_id, title, price, EXTRACT(DAY FROM order_time) AS day_time FROM tb_order WHERE order_time >= NOW() - INTERVAL '1 hour' ) AS t GROUP BY t.order_id, t.title, t.price, t.day_time;コードを追加した後、エディターの上にある [プリコンパイル] をクリックします。Hologres DPI エンジンは SQL 文をコンパイルしてエラーをチェックし、互換性のある動的テーブルパターンを決定します。
プリコンパイルが成功したら、[フィールド情報] エリアの [フィールド詳細] タブをクリックして、動的テーブルに [説明] を追加します。
[パーティションフィールド] の選択。
[フィールド情報] を設定した後、[パーティションフィールド情報] の下にある [パーティションフィールド] ドロップダウンリストからパーティションフィールドを選択します。フィールドを選択しない場合、システムはデフォルトで非パーティション化動的テーブルを作成します。データリフレッシュの方法と構成は、非パーティション化動的テーブルとパーティション化動的テーブルで異なります。
非パーティション化動的テーブルのデータリフレッシュ: 非パーティション化動的テーブルのデータは、DataWorks の定期的なスケジュールまたは Hologres エンジンによって自動的にリフレッシュされます。
パーティション化動的テーブルのデータリフレッシュ: データリフレッシュのライフサイクルには、パーティションの事前作成、パーティションリフレッシュの開始、パーティションリフレッシュの終了、パーティションデータのリフレッシュのフェーズが含まれます。
データリフレッシュポリシーのパラメーターは、非パーティション化動的テーブルとパーティション化動的テーブルで異なります。詳細については、「データリフレッシュポリシーの設定」をご参照ください。
[詳細設定] セクションで、パラメーターを設定します。
動的テーブルのパラメーターを設定します。
パラメーター
説明
ストレージモード
Hologres は、列ストア、ローストア、行列表ハイブリッドストアの 3 つのストレージモードをサポートしています。デフォルトのモードは 列ストア です。詳細については、「テーブルストレージ形式: 列ストア、ローストア、行列表ハイブリッドストア」をご参照ください。
列ストアは、さまざまなオンライン分析処理 (OLAP) シナリオでの複雑なクエリに適しています。
ローストアは、プライマリキーに基づくキー値 (KV) クエリシナリオに適しています。
行列表ハイブリッドストアは、列ストアとローストアの両方を使用できるシナリオに適しています。
テーブルグループ
Hologres データソースで内部テーブルを作成するときに生成される
Table Groupの名前を選択します。詳細については、「テーブルグループの管理」をご参照ください。ストレージポリシー
Hologres は、標準ストレージ (ホットストレージ) と低頻度アクセスストレージ (コールドストレージ) の 2 つのストレージポリシーをサポートしています。
ホットストレージは、オール SSD ホットストレージとも呼ばれ、Hologres のデフォルトのストレージポリシーです。低レイテンシー、高パフォーマンスのデータアクセス要件を満たします。ほとんどのシナリオで、標準ストレージは最も効果的でコスト効率の高い選択肢です。
コールドストレージは、オール HDD コールドストレージとも呼ばれ、アクセス頻度の低いデータの低コストストレージ要件を満たします。レイテンシーに敏感でない、または頻繁にアクセスされない非常に大規模なデータセットに適しています。
詳細については、「階層型ストレージ」をご参照ください。
テーブルデータライフサイクル
動的テーブルのカスタムの最大存続時間を設定します。
バイナリログ
Hologres バイナリログのサブスクリプションを有効 (replica) または無効 (none) にするかを選択します。デフォルトでは、この機能は無効になっています。詳細については、「Hologres バイナリログのサブスクライブ」をご参照ください。
バイナリログライフサイクル
Hologres バイナリログの最大ライフサイクル。このパラメーターは、Binlog パラメーターを replica に設定した場合にのみ設定できます。詳細については、「Hologres バイナリログのサブスクライブ」をご参照ください。
フィールドプロパティ
フィールドプロパティを設定します。これには、[フィールド名] の [分布列]、[セグメント列]、[クラスタリング列]、[ビットマップ列]、および [辞書エンコーディング列] の選択が含まれます。ページの説明に基づいてプロパティを設定します。詳細については、「内部テーブルの管理」をご参照ください。
動的テーブルを公開します。
ページの右側で、[リフレッシュポリシー] をクリックします。データリフレッシュポリシーページで、データリフレッシュポリシーを設定し、[依存関係の構成] の下にある [スケジュールリソースグループ] を選択します。新しい Hologres 動的テーブルを公開するには、ページの上部にある [公開] をクリックします。
説明パーティション化動的テーブルを作成すると、[パーティション例の表示] ダイアログボックスが開きます。データリフレッシュポリシーに応じて [日次パーティション] または [時間単位パーティション] を選択し、[公開] をクリックします。
動的テーブルの表示
[データカタログ] エリアに移動します。Hologres タイプの下で宛先の Hologres インスタンスを見つけ、ディレクトリを展開し、[動的テーブル] をクリックします。表示されるリストで、作成した動的テーブルを見つけ、その名前をクリックして詳細を表示します。
詳細を表示できます。
[詳細] タブでは、動的テーブルの [テーブルフィールド] と [パーティションフィールド] を表示できます。
基本情報を表示できます。
[基本情報] タブでは、動的テーブルの [基本プロパティ]、[データリフレッシュロジック-SQL]、[データリフレッシュポリシー]、および [詳細プロパティ] を表示できます。
DDL 情報を表示できます。
[DDL] タブでは、動的テーブルの DDL を表示およびコピーできます。
出力を表示します。
[出力情報] タブでは、動的テーブルからの出力データを表示できます。
説明非パーティション化動的テーブルを作成した場合、テーブルの出力情報を表示できます。
パーティション化動的テーブルを作成した場合、プライマリテーブルは論理テーブルであり、出力情報はありません。パーティション化動的テーブルの左側にある
アイコンをクリックして、子パーティションテーブルを展開し、その出力情報を表示します。
動的テーブルの削除
[データカタログ] エリアでターゲットの Hologres インスタンスを見つけます。ディレクトリを展開します。[動的テーブル] の下にあるターゲットの動的テーブルを右クリックし、[削除] を選択します。確認ダイアログボックスで、[確認] をクリックします。
削除されたテーブルは復元できません。注意して進めてください。
Hologres 動的テーブルを削除する前に、DataWorks はまず関連するスケジューリングタスクを削除しようとします。タスクに下流の依存関係がある場合、削除は失敗します。オペレーションセンターに移動し、手動で下流の依存関係をデタッチしてから、テーブルを削除する必要があります。
データリフレッシュポリシーの設定
データリフレッシュポリシーのパラメーターは、非パーティション化動的テーブルとパーティション化動的テーブルで異なります。次のセクションの説明に従ってポリシーを設定します。
非パーティション化動的テーブルのデータリフレッシュポリシーの設定
パラメーター | 説明 | |
リフレッシュモード | リフレッシュモード。有効な値は 完全リフレッシュ (Full) と 増分リフレッシュ (Incremental) です。 | |
リフレッシュスケジューリングモード | リフレッシュスケジューリングモード。有効な値は Hologres 自動リフレッシュ と DataWorks 定期スケジュール です。 | |
Hologres 自動リフレッシュ | データの自動リフレッシュ | データを自動的にリフレッシュするかどうかを指定します。 |
DataWorks 定期スケジュール | スケジューリング周期 | 必要に応じて、スケジューリング周期を 日 または 時間 に設定します。
|
Cron 式 | カスタムスケジューリング周期の cron 式。 | |
再実行プロパティ | 再実行プロパティを設定します。有効な値は 成功と失敗の両方で再実行を許可、失敗時のみ再実行を許可、および 成功と失敗の両方で再実行を許可しない です。 | |
パーティション化動的テーブルのデータリフレッシュポリシーの設定
リフレッシュポリシーライフサイクル | パラメーター | 説明 |
パーティションの事前作成 | パーティション事前作成方法 | デフォルト値は DataWorks スケジューリングによるパーティション作成 です。作成は DataWorks 依存関係スケジューリングによってトリガーされます。 |
事前作成するパーティション数 | 事前に作成する子パーティションテーブルの数。タスクが日単位でスケジュールされている場合、翌日のパーティションが当日に作成されます。タスクが時間単位でスケジュールされている場合、次の時間のパーティションが現在の時間に作成されます。 | |
パーティション単位 | タスクが 日 単位でスケジュールされている場合、毎日日次パーティションが生成されます。子テーブル名は | |
パーティション事前作成日 | パーティションテーブルを作成する日付。子パーティションテーブルは、指定された事前作成時刻に指定された日に作成されます。 | |
パーティション事前作成時刻 | パーティションテーブルを作成する時刻。子パーティションテーブルは指定された時刻に作成されます。 | |
パーティションリフレッシュの開始 | 事前作成されたパーティションのデータリフレッシュモード | まず、SQL をプリコンパイルして、利用可能なリフレッシュモード設定を取得します。完全リフレッシュ (Full) は完全なデータリフレッシュを実行します。増分リフレッシュ (Incremental) は、分単位の頻度で新しいデータをリフレッシュします。 |
リフレッシュスケジューリングモード | デフォルト値は Hologres 自動リフレッシュ です。 | |
データの自動リフレッシュ | 自動データリフレッシュを有効にするかどうかを指定します。 自動データリフレッシュを有効にするには、プロンプトに従って [データリフレッシュ開始時刻]、[データリフレッシュ間隔]、[Hologres 計算リソース]、および [Hologres 計算リソース仕様] パラメーターを設定します。 | |
パーティションリフレッシュの終了 | パーティションリフレッシュタスク終了時、切り替え先 | デフォルトは 完全リフレッシュ (Full) です。 |
パーティションリフレッシュ終了スケジューリングモード | DataWorks はリフレッシュの終了をスケジュールします。 | |
終了時刻 | 動的テーブル作成の完了時間に基づいて、パーティションリフレッシュタスクは完全リフレッシュに切り替えられ、指定された遅延後に停止します。 | |
パーティションデータのリフレッシュ | リフレッシュが終了したパーティションのデータをリフレッシュ | リフレッシュタスクが終了した後にパーティションに対して 1 回限りの完全リフレッシュを実行するかどうかを指定します。この操作により、そのパーティションのデータが完全にリフレッシュされます。 説明 入力データが変更された場合にのみ、パーティションデータのリフレッシュを開始することをお勧めします。 リフレッシュタスクが終了したパーティションのデータをリフレッシュするには、プロンプトに従って [Hologres 計算リソース]、[Hologres 計算リソース仕様]、[スケジューリング周期]、[スケジューリング時間]、および [再実行プロパティ] パラメーターを設定します。 |