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

Hologres:DataHub のリアルタイム同期

最終更新日:Aug 21, 2026

DataHub から Hologres にデータをストリーミングすることで、リアルタイム分析、モニタリング、レポーティング、または複雑なデータ処理が可能になります。DataHub と Hologres の機能を組み合わせることで、データパイプラインの効率と精度が向上します。本トピックでは、DataHub からデータを同期するためのデータコネクタの作成方法と、一般的な問題に対する解決策について説明します。

背景情報

DataHub はデータソースまたはシンクとして機能し、トピックから他の Alibaba Cloud サービスへ リアルタイム / 準リアルタイム でデータを同期できます。これにより、異なるサービス間のデータフローが合理化されます。DataHub のデータ同期機能の詳細については、「概要」をご参照ください。

次の表に、DataHub と Hologres の概念間のマッピングを示します。

DataHub

Hologres

Project

Database

Topic

Table

同期モードとポリシー

同期モード

モード

説明

逐一挿入

DataHub のデータを Hologres に 1 件ずつ挿入します。このモードは、DataHub のすべてのデータを Hologres に同期する場合に適用されます。

再生

ソース DataHub プロジェクトで実行された変更操作を宛先の Hologres データベースで実行し、データの一貫性を確保します。データ変更操作は、バイナリログを分析することで取得できます。このモードは、Data Transmission Service (DTS) を使用してソースから DataHub にデータを同期し、その後 Hologres にデータを同期する場合に適用されます。この場合、DataHub はバイナリログに相当します。

説明

DTS を使用して DataHub にデータを同期すると、同期されたデータ列に追加の列が加えられ、データ操作が記述されます。追加の列の名前が、宛先の DataHub トピック内の既存の列の名前と競合する可能性があります。競合を防ぐ方法の詳細については、「追加列の命名規則の変更」をご参照ください。

同期ポリシー

ポリシー

説明

リプレース

データの書き込み時に主キーの競合が発生した場合、元のデータは新しいデータで上書きされます。これにより、ソースデータベースと宛先データベース間のデータの一貫性が確保されます。

無視

データの書き込み時に主キーの競合が発生した場合、新しいデータは無視されます。データは更新されません。これにより、重複データの書き込みが防止され、宛先データベースのデータ整合性が確保されます。

注意事項

  • Hologres に同期できるのは、DataHub の TUPLE 型トピックのデータのみです。

  • Hologres インスタンスのパーティションテーブルにデータを書き込む前に、子テーブルを作成する必要があります。詳細については、「CREATE PARTITION TABLE」をご参照ください。

  • 各データコネクタは接続を占有します。各データコネクタが占有する接続数は、DataHub トピックのシャード数と同じです。

事前準備

  1. DataHub をアクティブ化し、データを準備します。詳細については、「DataHub の使用開始」をご参照ください。

  2. Hologres インスタンスを購入し、テーブルを作成します。本トピックでは、lineitem という名前のテーブルを例として使用します。詳細については、「Hologres インスタンスの購入」および「HoloWeb を使用した Hologres への接続とテーブルの作成」をご参照ください。

    次の表に、DataHub と Hologres のデータ型のマッピングを示します。

    DataHub

    Hologres

    TINYINT

    SMALLINT

    SMALLINT

    SMALLINT

    INTEGER

    INTEGER

    BIGINT

    BIGINT

    FLOAT

    REAL

    DOUBLE

    DOUBLE PRECISION

    DECIMAL

    DECIMAL

    STRING

    TEXT

    BOOLEAN

    BOOLEAN

    TIMESTAMP

    TIMESTAMPTZ

    たとえば、次のステートメントを実行してテーブルを作成できます。

    BEGIN;
    CREATE TABLE lineitem ( 
    L_ORDERKEY BIGINT NOT NULL,
    L_PARTKEY BIGINT NOT NULL,
    L_SUPPKEY BIGINT NOT NULL,
    L_LINENUMBER BIGINT NOT NULL,
    L_QUANTITY DECIMAL(20,10),
    L_EXTENDEDPRICE DECIMAL(20,10),
    L_DISCOUNT DECIMAL(20,10),
    L_TAX DECIMAL(20,10),
    L_RETURNFLAG TEXT,
    L_LINESTATUS TEXT,
    L_SHIPDATE TIMESTAMPTZ,
    L_COMMITDATE TIMESTAMPTZ,
    L_RECEIPTDATE TIMESTAMPTZ,
    L_SHIPINSTRUCT TEXT,
    L_SHIPMODE TEXT,
    L_COMMENT TEXT
    );
    CALL set_table_property('lineitem', 'orientation', 'column');
    COMMIT;

データコネクタの作成

  1. DataHub コンソールにログインし、作成したトピックをクリックしてトピック詳細ページに移動します。

  2. 右上隅にある [+ Connector] をクリックします。

  3. Hologres をクリックし、[Create connector] パネルでパラメーターを設定します。

    パラメーター

    説明

    Instance

    Hologres インスタンスの ID です。Hologres コンソール に移動して インスタンス ID を取得します。

    [データベース]

    DataHub データを同期する Hologres データベースの名前です。

    Table

    DataHub からデータを受信する Hologres テーブルの名前です。この例では lineitem を使用します。

    [主キーの競合ポリシー]

    主キーの競合が発生した場合のデータ更新ポリシーです。有効な値:

    • replace:データの書き込み時に主キーの競合が発生した場合、元のデータは新しいデータで上書きされます。これがデフォルト値です。

    • ignore:データの書き込み時に主キーの競合が発生した場合、新しいデータは無視されます。データは更新されず、元のデータが引き続き使用されます。

    データ同期ポリシーの詳細については、本トピックの「同期ポリシー」をご参照ください。

    [同期シナリオ]

    データ同期に使用されるモードです。有効な値:

    • default:データは 1 件ずつ挿入されます。これがデフォルト値です。

    • dts: DTS を使用して DataHub にデータを同期し、追加列の新しい命名規則を有効にしている場合に選択します。

    • dts_old:DTS を使用して DataHub にデータを同期し、追加列の新しい命名規則を有効にしていない場合に使用します。

    データ同期モードの詳細については、本トピックの「同期モード」をご参照ください。

    [インポートフィールド]

    Hologres に同期するフィールドです。ビジネス要件に基づいて、DataHub トピックのすべてのフィールドまたは一部のフィールドを同期できます。

    [認証モード]

    Hologres インスタンスへのアクセスを認証するモードです。デフォルト値は AccessKey です。

    [アクセスキーID]

    Hologres インスタンスへのアクセスに使用される Alibaba Cloud アカウントのアクセスキー ID です。AccessKey ペア ページからアクセスキー ID を取得できます。

    [アクセスキー秘密鍵]

    Hologres インスタンスへのアクセスに使用される Alibaba Cloud アカウントのシークレットアクセスキーです。AccessKey ペア ページからシークレットアクセスキーを取得できます。

    タイムスタンプ単位

    データコネクタがデータ同期に使用するタイムスタンプ単位です。有効な値:

    • MICROSECOND:デフォルト値です。

    • MILLISECOND。

    • SECOND。

  4. 作成 をクリックしてデータ同期を開始します。

    データコネクタが作成された後、トピック詳細ページの 同期タスク タブでリアルタイムの同期ステータスを表示できます。

  5. Hologres で同期されたデータをクエリします。

    Hologres インスタンスを開発ツールに接続し、そのツールを使用してデータがリアルタイムで Hologres インスタンスに同期されているかどうかを確認します。開発ツールの詳細については、「概要」をご参照ください。たとえば、次のステートメントを実行して、同期されたデータをクエリできます。

    SELECT COUNT(*) FROM lineitem;

一般的なエラーとトラブルシューティング

このセクションでは、Hologres を使用するときに報告される一般的なエラーと、これらのエラーの解決策について説明します。

  • エラー 1

    • 問題の説明

      ErrorMessage: Import field not found in dest schema.
    • 原因

      • 宛先の Hologres テーブルに、データコネクタでインポートフィールドとして指定されたフィールドが含まれていません。

      • [Synchronization Scenarios] パラメーターが [default] に設定されていますが、DTS を使用して DataHub にデータを同期する際に生成される追加の列が、データコネクタでインポートフィールドとして設定されています。

    • 解決策

      • Hologres テーブルを作成し、不足しているフィールドを追加します。または、データコネクタの [Import Fields] パラメーターを変更して、追加のフィールドを削除することもできます。

      • データコネクタを作成し、[Synchronization Scenarios] パラメーターを [dts] または [dts_old] に設定します。

  • エラー 2

    • 問題の説明

      ErrorMessage: Column type not match with Holo column.
    • 原因

      DataHub トピックのフィールドのデータ型が、Hologres テーブルのフィールドのデータ型と一致していません。

    • 解決策

      Hologres テーブルを作成し、データ型のマッピングに基づいてテーブルに有効なデータ型を指定します。

  • エラー 3

    • 問題の説明

      ErrorMessage: Not import column xxx not allow null and no default value.
    • 原因

      宛先の Hologres テーブルには、データコネクタでインポートフィールドとして指定されていないフィールドが含まれています。これらのフィールドには not null プロパティが設定されており、デフォルト値が設定されていません。

    • 解決策

      Hologres テーブルを作成します。データコネクタでインポートフィールドとして指定されていないフィールドについては、デフォルト値を設定するか、not null プロパティを設定しないでください。