データベースのバッチソース

このページでは、Cloud Data Fusion での BigQuery バッチソース プラグインの構成について説明します。

データベースからの読み取りが必要になるときは、いつでもこの汎用ソースを使用できます。たとえば、このテーブルを使用して、汎用データベース テーブルの日次スナップショットを作成し、その出力を BigQuery に書き込むことができます。

プラグインを構成する

  1. Cloud Data Fusion ウェブ インターフェースに移動し、[Studio] をクリックします。
  2. [Realtime] ではなく、[Data Pipeline - Batch] が選択されていることを確認します。
  3. [ソース] メニューで [データベース] をクリックします。
  4. プラグインを構成するには、ポインタをプラグイン ノードの上に置き、[プロパティ] をクリックします。
  5. 次のプロパティを入力します。各プロパティの詳細については、プロパティをご覧ください。

    1. データベース ノードのラベルを入力します(例: database tables)。
    2. 接続の詳細を入力します。新しい 1 回限りの接続または再利用可能な既存接続を設定できます。

      新しい接続

      データベースに 1 回限りの接続を追加するには、次の手順を行います。

      1. [接続を使用] はオフのままにします。
      2. 次の接続プロパティを入力します。
        1. [JDBC ドライバ名] フィールドに、ドライバの名前(存在する場合)を入力します。それ以外の場合は、[JDBC プラグインなし] を選択したままにします。
        2. [接続文字列] フィールドに、データベース名を含む JDBC 接続文字列を入力します。
        3. 省略可: データベースで認証が必要な場合は、データベースのユーザー名とパスワードの認証情報を入力します。
        4. 省略可: JDBC ドライバに追加の構成が必要な場合は、[接続引数] フィールドに接続の Key-Value 引数を入力します。

      再利用可能な接続

      既存の接続を再利用する手順は次のとおりです。

      1. [接続を使用] をオンにします。
      2. [接続を参照] をクリックします。
      3. 接続を選択します

      4. 省略可: 接続が存在せず、再利用可能な新しい接続を作成する場合は [接続を追加] をクリックし、本ページにある [新しい接続] タブの手順をご参照ください。

    3. (省略可)接続をテストするには、[Get schema] をクリックします。 このスキーマは、クエリから返されるスキーマの代わりに使用されます。このフィールドはクエリから返されるスキーマと一致する必要がありますが、フィールドを null 可能としてマークし、フィールドのサブセットを含めることができます。

    4. [インポート クエリ] フィールドに、指定したテーブルからデータをインポートするための SELECT クエリを入力します(例: select id, name, email, phone from users;)。

    5. 省略可: [境界クエリ] フィールドに、読み取る最小値と最大値を入力します(例: SELECT * FROM table WHERE $CONDITIONS)。

    6. 省略可: [分割フィールドの名前] フィールドに、分割を生成するフィールドの名前を入力します。

    7. 省略可: [生成するスプリット数] フィールドに数値を入力します(例: 2)。

    8. 省略可: [フェッチサイズ] フィールドに数値(1000 など)を入力します。

    9. 省略可: 列名の大文字と小文字の変更などの [Advanced properties] を入力します。

  6. 省略可: [Validate] をクリックして、見つかったエラーに対処します。

  7. [閉じる] をクリックします。プロパティが保存され、Cloud Data Fusion Studio で引き続きデータ パイプラインを構築できます。

プロパティ

プロパティ マクロ対応 必須 説明
ラベル × データ パイプラインのノードの名前。
接続を使用 × × ソースへの接続を参照します。[接続を使用] を選択した場合は、認証情報を指定する必要はありません。
接続 使用する接続の名前。 [接続を使用] が選択されている場合、このフィールドが表示されます。データベースとテーブルの情報は接続によって提供されます。
JDBC ドライバ名 使用する JDBC ドライバ。
デフォルトは [JDBC プラグインなし] です。
接続文字列 データベース名を含む JDBC 接続文字列。
ユーザー名 × データベースに接続するためのユーザー ID。認証が必要なデータベースでは必須です。認証が不要なデータベースの場合は省略可能です。
パスワード × 指定したデータベースへの接続に使用するパスワード。認証が必要なデータベースでは必須です。認証が不要なデータベースの場合は省略可能です。
接続引数 × 接続引数としての任意の文字列の tag / value ペアのリスト。追加の構成が必要な JDBC ドライバの場合、これらの引数は key1=value1;key2=value の形式で接続引数として JDBC ドライバに渡されます。
参照名 × リネージとメタデータのアノテーションのためにソースを一意に識別する名前。通常は、テーブルまたはビューの名前です。
スキーマの取得 × × ソースから出力されるレコードのスキーマ。これは、クエリによって返されるスキーマの代わりに使用されます。クエリから返されるスキーマと一致する必要がありますが、フィールドを null 可能としてマークし、フィールドのサブセットを含めることができます。
インポート クエリ 指定したテーブルからデータをインポートするための SELECT クエリ。インポートする列の数に制限はありません。または、* を使用してすべての列をインポートすることもできます。クエリには $CONDITIONS 文字列を含める必要があります。例: SELECT * FROM table WHERE $CONDITIONS$CONDITIONS 文字列は、[境界クエリ] フィールドで指定された splitBy フィールドの上限に置き換えられます。[スプリット数] フィールドが 1 に設定されている場合、$CONDITIONS 文字列は必要ありません。
境界クエリ × 分割列から値の最小値と最大値を返す境界クエリ。例: SELECT MIN(id),MAX(id) FROM tableスプリット数が 1 に設定されている場合は不要です。
分割項目名 × スプリットの生成に使用されるフィールド名。生成するスプリット数が 1 に設定されている場合は不要です。
生成するスプリット数 × 生成するスプリット数。
デフォルトは 1 です。
フェッチサイズ × スプリットごとに一度にフェッチする行数。フェッチサイズを大きくすると、インポートが速くなりますが、その一方でメモリ使用量は増加します。
デフォルトは 1000 です。
自動 commit を有効にする × × このソースによって実行されるクエリに対して自動 commit を有効にするかどうか。commit オペレーションの実行時にエラーが発生する JDBC ドライバを使用する場合を除き、これを False のままにします。
デフォルトは False です。
列名の大文字と小文字の区別 × クエリから返される列名の大文字と小文字を設定します。大文字または小文字を選択できます。デフォルトまたはその他の入力の場合、列名は変更されず、データベースから返された大文字と小文字が区別されます。このプロパティを設定すると、異なるデータベース間で列名の大文字小文字を予測できますが、大文字と小文字を区別しないことで複数の列名が同じになった場合、列名の競合が発生する可能性があります。
デフォルトは [変更なし] です。
トランザクション分離レベル × このシンクによって実行されるクエリのトランザクション分離レベル。詳細については、setTransactionIsolation() をご覧ください。Phoenix JDBC ドライバは、Phoenix データベースでトランザクションが有効になっておらず、このフィールドが true に設定されている場合、例外をスローします。このようなドライバの場合は、このフィールドを TRANSACTION_NONE に設定します。
デフォルトは TRANSACTION_SERIALIZABLE です。
置き換えるパターン × × テーブル内のフィールド名で置換するパターン(通常は [置換] プロパティで使用します)。[置換] プロパティが設定されていない場合、フィールド名からパターンが削除されます。
次に変更 × × テーブルのフィールド名で置換される文字列。[置換するパターン] フィールドも構成する必要があります。
出力スキーマ × × 出力されるスキーマを指定します。スキーマで定義された列のみが出力レコードに含まれます。

ベスト プラクティス

データベースでより具体的なプラグインを使用できるかどうかを確認します。たとえば、Oracle データベース ソースがある場合は、Oracle スキーマと連携するように設計されているため、代わりに Oracle データベース バッチソース プラグインを使用します。

次のステップ