データ伝送サービス (DTS) は、抽出、変換、およびロード (ETL) 機能を提供します。 ETL機能を使用すると、ストリーミングデータをクレンジングおよび変換できます。 このようにして、必要なデータを正確かつ効率的に取得できます。 このトピックでは、有向非巡回グラフ (DAG) モードでETLタスクを設定する方法について説明します。
背景情報
この機能はまもなく利用できなくなり、この機能を有効にした特定のユーザーのみ無料で利用できます。 データ同期または移行インスタンスでETLタスクを設定することを推奨します。 詳細については、「データ移行または同期タスクでのETLの設定」をご参照ください。
ETLタスクを設定する前に、次の情報に注意してください。
Input/Dimension Tableは、ETLタスクのソースデータベースを示します。
Outputは、ETLタスクのターゲットデータベースを示します。
DTSは、データ同期プロセスのストリーミングETL機能を提供します。 ソースデータベースとターゲットデータベースの間にさまざまな変換コンポーネントを追加して、データを変換し、処理されたデータをターゲットデータベースにリアルタイムで書き込むことができます。 たとえば、2つのストリームテーブルを大きなテーブルに結合し、その大きなテーブルのデータをターゲットデータベースに書き込むことができます。 ソーステーブルにフィールドを追加し、フィールドに値を割り当てる関数を設定することもできます。 次に、フィールドをターゲットデータベースに書き込むことができます。
前提条件
ETLタスクは、中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (深セン) 、中国 (広州) 、中国 (香港) のいずれかのリージョンで作成されます。
ソースデータベースは、MySQL、PolarDB for MySQL、Oracle、PostgreSQL、iSeries DB2 (AS/400) 、Db2 for LUW、PolarDB-X 1.0、PolarDB for PostgreSQL、MariaDB、PolarDB for Oracle、SQL Server、PolarDB-X 2.0となります。
ターゲットデータベースは、MySQL、PolarDB for MySQL、Oracle、AnalyticDB for MySQL V3.0、PolarDB for PostgreSQL、PostgreSQL、Db2 for LUW、iSeries DB2 (AS/400) 、AnalyticDB for PostgreSQL、SQL Server、MariaDB、PolarDB-X 1.0、PolarDB for Oracle、およびTablestore。
ターゲットデータベースのテーブルのスキーマが作成されます。 これは、ETL機能がスキーマ移行をサポートしていないためです。 例えば、テーブルAは、フィールド1、フィールド2、およびフィールド3を含み、テーブルBは、フィールド2、フィールド3、およびフィールド4を含む。 フィールド2とフィールド3を含むテーブルにテーブルAとテーブルBを結合する場合は、フィールド2とフィールド3を含むテーブルCをターゲットデータベースに作成する必要があります。
ETL機能は完全なデータ同期をサポートしていません。 したがって、増分データのみをリアルタイムで変換できます。
注意事項
ソースデータベースとターゲットデータベースは同じリージョンに存在する必要があります。
すべてのストリームテーブルは同じインスタンスに属している必要があります。
データベースの名前とテーブルの名前はすべて一意である必要があります。
変換コンポーネントには次の制限があります。
テーブル結合: 結合操作は、2つのテーブル間でのみ実行できます。
Field CalculatorおよびTable Record Filter: 単一のテーブルスキーマのみがサポートされています。
フローチャート

ETLタスクを作成するには、1つ以上のソースデータベース、1つ以上の変換コンポーネント、およびターゲットデータベースを設定する必要があります。 次の表に、ETLタスクの作成方法を示します。
ステップ | 説明 | 関連ドキュメント |
ソースデータベースの設定 | [入力 /ディメンションテーブル] セクションで1つ以上のソースデータベースを選択し、各ソースデータベースのパラメーターを設定できます。 説明 同じタイプのソースデータベースを複数回選択できます。
| |
変換コンポーネントの設定 | 1つ以上の変換コンポーネントを選択し、各変換コンポーネントのパラメーターを設定できます。 説明 同じタイプの変換コンポーネントを複数回選択できます。
| |
ターゲットデータベースの設定 | [出力] ノードのターゲットデータベースタイプを選択し、ターゲットデータベースに次のパラメーターを設定できます。
|
手順
ストリーミングETLページに移動します。
最初に
DTSコンソール。左側のナビゲーションウィンドウで、[ETL] をクリックします。
ストリーミングETLページの左上隅にある [
] をクリックします。 [データフローの作成] ダイアログボックスで、[データフロー名] フィールドにETLタスク名を指定し、[開発方法] パラメーターを [DAG] に設定します。 クリックOK.
ETLタスクのパラメーターを設定します。
ETLタスクを作成します。
説明この例では、[Input/Dimension Table MySQL] ノード、[Field Calculator] ノード、および [Output MySQL] ノードが設定されています。
1つ以上のソースデータベースを選択できます。 同じタイプのソースデータベースを複数回選択できます。
1つ以上の変換コンポーネントを選択できます。 同じ変換コンポーネントを複数回選択できます。
選択できるターゲットデータベースは1つだけです。
キャンバスの左側で、[入力 /ディメンションテーブルMySQL] ノードをキャンバスの空白領域にドラッグします。
キャンバス上の [入力 /寸法テーブルMySQL-1] をクリックします。 [ノード設定] 、[出力フィールド] 、および [時間属性] タブでパラメーターを設定します。 必要なパラメーターの設定方法の詳細については、「ソースデータベースの設定」をご参照ください。
キャンバスの左側で、[Field Calculator] ノードをキャンバスの空白領域にドラッグします。
[入力 /ディメンションテーブルMySQL-1] ノードの上にポインターを移動し、ドットをクリックして [入力 /ディメンションテーブルMySQL-1] ノードと [フィールド計算機-1] ノードの間に線を引きます。
キャンバス上の [Field Calculator-1] ノードをクリックし、[ノード設定] タブでパラメーターを設定します。 必要なパラメーターの設定方法の詳細については、「変換コンポーネントの設定」をご参照ください。
キャンバスの左側で、[出力MySQL-1] ノードをキャンバスの空白領域にドラッグします。
ポインタを [Field Calculator-1] ノードの上に移動し、ドットをクリックして [Field Calculator-1] ノードと [出力MySQL-1] ノードの間に線を引きます。
[出力MySQL-1] ノードをクリックし、[ノード設定] タブと [フィールドマッピング] タブでパラメーターを設定します。 必要なパラメーターを設定する方法の詳細については、「ターゲットデータベースの設定」をご参照ください。
上記の設定を完了したら、ビジネス要件に基づいて [Flink SQL検証の生成] または [発行] をクリックします。
Flink SQL検証の生成: Flink SQL検証が成功した場合、Flink SQL検証の成功メッセージが表示されます。 検証に失敗した場合は、[Flink SQL検証の生成] の横にある [ETL検証の詳細を表示] をクリックします。 エラーメッセージに基づいて問題をトラブルシューティングした後、Flink SQL検証を再度実行できます。
公開: システムは最初にFlink SQL検証を実行します。 ETLタスクは、Flink SQLの検証が成功した後にのみ事前チェックできます。 [ETL検証の詳細を表示] をクリックすると、検証の詳細が表示されます。
Flink SQLの検証が完了したら、事前チェックを実行します。 DTSは、タスクが事前チェックに合格した後にのみETLタスクを開始できます。 タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 エラーメッセージに基づいて問題をトラブルシューティングした後、事前チェックを再度実行できます。
事前チェックに合格したら、をクリックします。次へ: インスタンスの購入ページの下部にあります。
[インスタンスの購入] ページで、[インスタンスクラス] および [計算ユニット (CU)] パラメーターを設定します。 次に、[データ送信サービス (従量課金) サービス規約] および [パブリックプレビューのサービス規約] を読み、選択します。
クリック購入して開始ETLタスクを開始します。
[ストリーミングETL] ページに戻り、[ステータス] 列でETLタスクの状態を表示できます。