SelectDB 出力コンポーネントを構成することで、外部データベースから SelectDB へデータを書き込むことや、ビッグデータプラットフォームと統合されたストレージシステムから SelectDB へデータをレプリカ化・プッシュして、データ統合および再処理を実行できます。
前提条件
SelectDB データソースを作成しました。詳細については、「SelectDB データソースの作成」をご参照ください。
SelectDB 出力コンポーネントのプロパティを構成するアカウントには、対象データソースに対するライトスルー権限が必要です。権限がない場合は、データソースの権限をリクエストしてください。詳細については、「データソース権限のリクエスト」をご参照ください。
操作手順
Dataphin のホームページ上部のメニューバーで、[開発] > [Data Integration] を選択します。
統合ページの上部メニューバーで、[プロジェクト] を選択します(Dev-Prod モードの場合は、環境を選択します)。
左側のナビゲーションウィンドウで、[オフライン統合] をクリックします。その後、[オフライン統合] の一覧から対象のオフラインパイプラインをクリックし、その構成ページを開きます。
ページ右上隅の [コンポーネントライブラリ] をクリックして、[コンポーネントライブラリ] パネルを開きます。
[コンポーネントライブラリ] パネルの左側ナビゲーションウィンドウで、[出力] を選択します。右側の出力コンポーネント一覧から [SelectDB] コンポーネントを見つけ、キャンバスにドラッグします。
対象の入力・変換・フロー コンポーネントの
アイコンをクリックしてドラッグし、現在の SelectDB 出力コンポーネントに接続します。SelectDB 出力コンポーネントのカード内の
アイコンをクリックして、[SelectDB 出力構成] ダイアログボックスを開きます。
[SelectDB 出力構成] ダイアログボックスで、以下のパラメーターを構成します。
パラメーター
説明
基本設定
ステップ名
SelectDB 出力コンポーネントの名前です。Dataphin が自動的にステップ名を生成しますが、必要に応じて変更可能です。命名規則は以下のとおりです:
漢字、英字、アンダースコア (_)、数字のみ使用可能です。
文字数は最大 64 文字までです。
データソース
データソースのドロップダウンリストには、ライトスルー権限を持つものおよび持たないものを含むすべての SelectDB データソースが表示されます。現在のデータソース名をコピーするには、
アイコンをクリックします。ライトスルー権限を持たないデータソースについては、データソース横の [リクエスト] をクリックして権限をリクエストできます。詳細については、「データソース権限のリクエスト」をご参照ください。
SelectDB データソースがない場合は、[データソースの作成] をクリックして新規作成します。詳細な手順については、「SelectDB データソースの作成」をご参照ください。
テーブル
出力データの送信先テーブルを選択します。 テーブル名のキーワードを入力して検索したり、正確なテーブル名を入力して [厳密検索] をクリックしたりできます。テーブルを選択すると、システムが自動的にテーブルのステータスを確認します。現在選択中のテーブル名をコピーするには、
アイコンをクリックします。SelectDB データソースにデータ同期の対象となるテーブルが存在しない場合、ワンクリックテーブル作成機能を使用して、迅速に送信先テーブルを生成できます。手順は以下のとおりです:
[ワンクリックテーブル作成] をクリックします。Dataphin が送信先テーブル作成用の SQL スクリプトを自動生成します(送信先テーブル名はデフォルトでソーステーブル名となり、フィールド型は Dataphin のフィールドに基づいて概ね変換されます)。
必要に応じて、送信先テーブル作成用の SQL スクリプトを編集し、[新規] をクリックします。送信先テーブルの作成が成功すると、Dataphin は自動的にこの新しいテーブルを出力データの送信先テーブルとして設定します。
説明開発環境に同名のテーブルが既に存在する場合、[作成] をクリックした際に「テーブルは既に存在します」というエラーが表示されます。
一致する項目がない場合でも、手動で入力したテーブル名に基づいて統合を実行できます。
本番テーブル未存在時の戦略
本番テーブルが存在しない場合の処理ポリシーです。[処理を行わない] または [自動作成] のいずれかを選択できます。デフォルトは [自動作成] です。[処理を行わない] を選択した場合、タスク公開時に本番テーブルは作成されません。[自動作成] を選択した場合、タスク公開時にターゲット環境に同名のテーブルが作成されます。
[処理を行わない]:送信先テーブルが存在しない場合、提出時に「送信先テーブルが存在しません」というメッセージが表示されますが、タスクは公開可能です。この場合、タスク実行前に本番環境で送信先テーブルを手動で作成する必要があります。
[自動作成]:必ず [テーブル作成文の編集] を実行してください。デフォルトでは、選択したテーブルの作成文が入力されていますが、必要に応じて編集可能です。作成文中のテーブル名にはプレースホルダー
${table_name}を使用します。このプレースホルダーのみがサポートされており、実行時に実際のテーブル名に置き換えられます。送信先テーブルが存在しない場合、システムはまずテーブル作成文に従ってテーブルを作成します。テーブル作成に失敗した場合、公開時のチェック結果は「失敗」になります。エラーメッセージに基づいてテーブル作成文を修正し、再度公開してください。送信先テーブルが既に存在する場合は、テーブル作成は実行されません。
説明このオプションは、Dev-Prod モードのプロジェクトでのみサポートされます。
データフォーマット
[CSV] または [JSON] のいずれかを選択できます。
[CSV] を選択した場合、[CSV インポート列区切り文字] および [CSV インポート行区切り文字] も構成してください。
CSV インポート列区切り文字(任意)
StreamLoad CSV インポートを利用する場合、ここで CSV インポートの列区切り文字を構成します。デフォルト値は
_@dp@_です。デフォルト値を利用する場合は、ここに明示的に指定する必要はありません。データに_@dp@_が含まれる場合は、別の文字をカスタマイズして区切り文字として使用してください。CSV インポート行区切り文字(任意)
StreamLoad CSV インポートを利用する場合、ここで CSV インポートの行区切り文字を構成します。デフォルト値は
_#dp#_です。デフォルト値を利用する場合は、ここに明示的に指定する必要はありません。データに_#dp#_が含まれる場合は、別の文字をカスタマイズして区切り文字として使用してください。バッチ書き込みデータ量(任意)
単一バッチで書き込むデータ量です。[バッチ書き込み件数] と併せて設定できます。いずれかの制限値に到達した時点で、システムが書き込み操作を開始します。デフォルト値は 32 MB です。
バッチ書き込みレコード件数(任意)
デフォルト値は 2048 件 です。データ同期ではバッチ書き込みポリシーが採用されています。このポリシーのパラメーターには、[1 バッチあたりのレコード数] および [1 バッチあたりのデータ量] があります。
累積データ量がいずれかの設定値(バッチ書き込みデータ量またはレコード件数の上限)に達した時点で、システムは 1 バッチ分のデータが満杯になったと判断し、即座にそのバッチのデータを送信先に書き込みます。
バッチ書き込みデータ量を 32 MB に設定します。バッチ挿入レコード件数の上限は、実際の 1 レコードサイズに応じて柔軟に調整してください。通常は、バッチ書き込みのメリットを十分に活用できるよう、より大きな値を設定することを推奨します。例えば、1 レコードが約 1 KB の場合、バッチ挿入バイトサイズを 16 MB に設定します。この条件を踏まえると、バッチ挿入レコード件数は 16 MB ÷ 1 KB(=16384 件)より大きい値に設定します。ここでは、20000 件 に設定したと仮定します。この構成により、システムはバッチ挿入バイトサイズに基づいてバッチ書き込み操作をトリガーします。累積データ量が 16 MB に達するごとに、書き込み操作が実行されます。
準備文(任意)
データインポート前にデータベース上で実行される SQL スクリプトです。
例:サービスの継続的な可用性を確保するために、現在のステップによるデータ書き込み前にターゲットテーブル 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 );
出力フィールドの作成: [+出力フィールドの作成] をクリックし、画面の指示に従って [列] を入力し、[型] を選択します。現在の行の構成が完了したら、
アイコンをクリックして保存します。
マッピング
マッピング関係は、ソーステーブルの入力フィールドをターゲットテーブルの出力フィールドにマップします。マッピング関係には、[同名マッピング] および [行単位マッピング] があります。適用シーンは以下のとおりです:
同名マッピング:フィールド名が同一のフィールドをマップします。
行単位マッピング:ソーステーブルとターゲットテーブルのフィールド名が一致しないものの、対応する行のデータをマップする必要があります。同一行にあるフィールドのみがマップされます。
[確認] をクリックして、[SelectDB 出力コンポーネント] のプロパティ構成を完了します。