AnalyticDB for PostgreSQL 出力コンポーネントは、AnalyticDB for PostgreSQL データソースにデータを書き込みます。他のデータソースからのデータを AnalyticDB for PostgreSQL データソースに同期するシナリオでは、ソースデータ情報を設定した後、AnalyticDB for PostgreSQL 出力コンポーネントの宛先データソースを設定する必要があります。このトピックでは、AnalyticDB for PostgreSQL 出力コンポーネントを設定する方法について説明します。
前提条件
AnalyticDB for PostgreSQL データソースが作成されていること。詳細については、「AnalyticDB for PostgreSQL データソースを作成する」をご参照ください。
AnalyticDB for PostgreSQL 入力コンポーネントのプロパティを設定するために使用するアカウントは、データソースに対するライトスルー権限を持っている必要があります。権限がない場合は、データソース権限をリクエストする必要があります。詳細については、「データソース権限をリクエストする」をご参照ください。
手順
Dataphin ホームページの上部ナビゲーションバーで、[開発] > [Data Integration] を選択します。
統合ページの上部ナビゲーションバーで、プロジェクト を選択します(開発 - 本番モードでは、環境を選択する必要があります)。
左側のナビゲーションウィンドウで、[バッチパイプライン] をクリックします。[バッチパイプライン] リストで、開発するオフラインパイプラインをクリックして、その構成ページを開きます。
ページの右上隅にある [コンポーネントライブラリ] をクリックして、[コンポーネントライブラリ] パネルを開きます。
[コンポーネントライブラリ] パネルの左側のナビゲーションウィンドウで、[出力] を選択します。右側の出力コンポーネントリストで [AnalyticDB For PostgreSQL] コンポーネントを見つけ、キャンバスにドラッグします。
ターゲットの入力、変換、またはフローコンポーネントの
アイコンをクリックしてドラッグし、現在の AnalyticDB for PostgreSQL 出力コンポーネントに接続します。AnalyticDB for PostgreSQL 出力コンポーネントカードの
アイコンをクリックして、[AnalyticDB For PostgreSQL 出力設定] ダイアログボックスを開きます。
[AnalyticDB For PostgreSQL 出力設定] ダイアログボックスで、次のパラメーターを設定します。
パラメーター
説明
基本情報
ステップ名
AnalyticDB for PostgreSQL 出力コンポーネントの名前。Dataphin は自動的にステップ名を生成しますが、ビジネスシナリオに基づいて変更できます。名前は次の要件を満たしている必要があります。
中国語、英字、アンダースコア(_)、数字のみを含めることができます。
最大 64 文字まで使用できます。
データソース
データソースのドロップダウンリストには、ライトスルー権限を持っているデータソースと持っていないデータソースを含め、すべての AnalyticDB for PostgreSQL データソースが表示されます。
アイコンをクリックして、現在のデータソース名をコピーします。ライトスルー権限のないデータソースの場合、データソースの後に [リクエスト] をクリックして、データソースのライトスルー権限をリクエストできます。詳細については、「データソース権限をリクエストする」をご参照ください。
AnalyticDB for PostgreSQL データソースがない場合は、[データソースの作成] をクリックして作成します。詳細については、「AnalyticDB for PostgreSQL データソースを作成する」をご参照ください。
タイムゾーン
時間形式のデータは、現在のタイムゾーンに従って処理されます。デフォルトは、選択したデータソースで設定されているタイムゾーンで、変更できません。
説明V5.1.2 より前に作成されたタスクの場合、[データソースのデフォルト設定] または [チャネル設定のタイムゾーン] を選択できます。デフォルトは [チャネル設定のタイムゾーン] です。
[データソースのデフォルト設定]:選択したデータソースのデフォルトのタイムゾーン。
[チャネル設定のタイムゾーン]:現在の統合タスクの [プロパティ] > [チャネル設定] で設定されているタイムゾーン。
スキーマ (オプション)
スキーマを跨るテーブルの選択をサポートします。テーブルが配置されているスキーマを選択します。指定しない場合、デフォルトはデータソースで設定されているスキーマです。
テーブル
出力データの宛先テーブルを選択します。テーブル名のキーワードを入力して検索するか、正確なテーブル名を入力して [完全一致] をクリックします。テーブルを選択すると、システムは自動的にテーブルの状態をチェックします。
アイコンをクリックして、現在選択されているテーブルの名前をコピーします。AnalyticDB for PostgreSQL データソースにデータ同期のターゲットテーブルがない場合は、ワンクリックテーブル作成機能を使用してターゲットテーブルをすばやく生成できます。詳細な手順は次のとおりです。
[ワンクリックでテーブルを作成] をクリックします。Dataphin は、ターゲットテーブル名(デフォルトはソーステーブル名)、フィールドタイプ(最初は Dataphin フィールドに基づいて変換されます)、その他の情報を含む、ターゲットテーブルを作成するためのコードを自動的に一致させます。
ビジネスニーズに応じてターゲットテーブルを作成するための SQL スクリプトを変更し、[作成] をクリックします。
ターゲットテーブルが正常に作成されると、Dataphin は新しく作成されたテーブルを自動的に出力データの宛先テーブルとして設定します。ワンクリックテーブル作成は、開発環境と本番環境でデータ同期のターゲットテーブルを作成するために使用されます。Dataphin はデフォルトで本番環境をテーブル作成用に選択します。同じ名前と構造のテーブルが本番環境に既に存在する場合は、本番環境のテーブル作成を選択する必要はありません。
説明同じ名前のテーブルが開発環境または本番環境に存在する場合、[作成] をクリックすると Dataphin はエラーを報告します。
ロードポリシー
[insert] ポリシーと [copy] ポリシーをサポートしています。
insert ポリシー:AnalyticDB for PostgreSQL の
insert into...values...文を実行して、AnalyticDB for PostgreSQL にデータを書き込みます。プライマリキー/一意なインデックスの競合が発生した場合、同期されるデータ行は AnalyticDB for PostgreSQL に書き込まれず、現在のレコードはダーティデータになります。insert モードを選択することをお勧めします。copy ポリシー:AnalyticDB for PostgreSQL は、テーブルとファイル(標準出力、標準入力)間のコピーに copy コマンドを提供します。Data Integration は、
copy fromを使用してテーブルにデータをロードすることをサポートし、競合が発生した場合は競合解決ポリシーに従ってアクションを実行します。パフォーマンスの問題が発生した場合にのみ、このポリシーを試すことをお勧めします。また、[競合解決ポリシー] を設定する必要があります。オプションには、[競合時にエラー] と [競合時に上書き] があります。重要競合解決ポリシーは、AnalyticDB for PostgreSQL カーネルバージョンが 4.3 よりも高い場合にのみ、コピーモードで有効です。カーネルバージョンが 4.3 未満または不明な場合は、タスクの失敗を避けるために慎重に選択してください。
バッチ書き込みデータサイズ(オプション)
一度に書き込むデータのサイズ。[バッチ書き込み数] も設定できます。設定された 2 つの制限のいずれかに達すると、システムはデータを書き込みます。デフォルトは 32M です。
バッチ書き込み数 (オプション)
デフォルトは 2048 レコードです。データを同期する場合、バッチ書き込み戦略が使用され、パラメーターには [バッチ書き込み数] と [バッチ書き込みデータサイズ] が含まれます。
累積データが設定された制限のいずれかに達すると(つまり、バッチ書き込みデータサイズまたは数の制限に達すると)、システムはデータのバッチがいっぱいになったと見なし、このデータのバッチをすぐに宛先に一度に書き込みます。
バッチ書き込みデータサイズを 32MB に設定することをお勧めします。バッチ挿入数の制限については、1 つのレコードの実際のサイズに応じて柔軟に調整でき、通常は大きな値に設定してバッチ書き込みの利点を最大限に活用します。たとえば、1 つのレコードのサイズが約 1KB の場合、バッチ挿入バイトサイズを 16MB に設定し、この条件を考慮して、バッチ挿入数を 16MB を 1 つのレコードサイズ 1KB で割った結果よりも大きく設定します(つまり、16384 レコードよりも大きく)、ここでは 20000 レコード に設定されていると仮定します。この設定では、システムはバッチ挿入バイトサイズに基づいてバッチ書き込みをトリガーし、累積データが 16MB に達するたびに書き込み操作を実行します。
準備文(オプション)
データインポートの前にデータベースで実行される SQL スクリプト。
たとえば、継続的なサービスの可用性を確保するために、現在のステップがデータを書き込む前に、まずターゲットテーブル Target_A を作成し、ターゲットテーブル Target_A への書き込みを実行し、現在のステップがデータの書き込みを完了した後、継続的にサービスを提供するテーブル Service_B の名前を Temp_C に変更し、次にテーブル Target_A の名前を Service_B に変更し、最後に Temp_C を削除します。
完了文(オプション)
データインポート後にデータベースで実行される SQL スクリプト。
フィールドマッピング
入力フィールド
上流コンポーネントの出力に基づいて入力フィールドを表示します。
出力フィールド
出力フィールドを表示します。次の操作を実行できます。
フィールド管理:[フィールド管理] をクリックして出力フィールドを選択します。

アイコンをクリックして、[選択された入力フィールド] を [選択されていない入力フィールド] に移動します。
アイコンをクリックして、[選択されていない入力フィールド] を [選択された入力フィールド] に移動します。
一括追加:[一括追加] をクリックして、JSON、TEXT、または DDL 形式で設定します。
JSON 形式での一括設定。例:
// 例: [{ "name": "user_id", "type": "String" }, { "name": "user_name", "type": "String" }]説明name はインポートされたフィールド名を表し、type はインポート後のフィールドタイプを表します。たとえば、
"name":"user_id","type":"String"は、user_id という名前のフィールドをインポートし、そのタイプを String に設定することを意味します。TEXT 形式での一括設定。例:
// 例: user_id,String user_name,String行区切り文字は、各フィールドの情報を区切るために使用されます。デフォルトは改行(\n)で、改行(\n)、セミコロン(;)、またはピリオド(.)をサポートできます。
列区切り文字は、フィールド名とフィールドタイプを区切るために使用されます。デフォルトはカンマ(,)です。
DDL 形式での一括設定。例:
CREATE TABLE tablename ( id INT PRIMARY KEY, name VARCHAR(50), age INT );
新しい出力フィールドの作成:[+ 新しい出力フィールドの作成] をクリックし、プロンプトに従って [列] に入力し、[タイプ] を選択します。現在の行の設定が完了したら、
アイコンをクリックして保存します。
マッピング
上流の入力とターゲットテーブルのフィールドに基づいて、フィールドマッピングを手動で選択できます。[マッピング] には、[同じ行のマッピング] と [同じ名前のマッピング] が含まれます。
同じ名前のマッピング:同じ名前のフィールドをマッピングします。
同じ行のマッピング:ソーステーブルとターゲットテーブルのフィールド名は一致しませんが、フィールドの対応する行のデータをマッピングする必要があります。同じ行のフィールドのみをマッピングします。
[OK] をクリックして、AnalyticDB for PostgreSQL 出力コンポーネント の設定を完了します。