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

このページでは、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 ドライバに追加の構成が必要な場合は、[接続引数] フィールドに接続のキーバリュー引数を入力します。

      再利用可能な接続

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

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

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

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

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

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

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

    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 を有効にするかどうか。コミット オペレーションの実行時にエラーが発生する JDBC ドライバを使用している場合を除き、この値は False のままにします。
デフォルトは False です。
列名の大文字と小文字 × クエリから返される列名の大文字と小文字を設定します。大文字または小文字を選択できます。デフォルトまたはその他の入力の場合、列名は変更されず、データベースから返された大文字と小文字が区別されます。このプロパティを設定すると、異なるデータベース間で列名の大文字小文字を予測できますが、大文字と小文字を区別しないことで複数の列名が同じになった場合、列名の競合が発生する可能性があります。
デフォルトは [変更なし] です。
トランザクション分離レベル × このシンクによって実行されるクエリのトランザクション分離レベル。詳細については、setTransactionIsolation() をご覧ください。Phoenix データベースでトランザクションが有効になっておらず、このフィールドが true に設定されている場合、Phoenix JDBC ドライバは例外をスローします。このようなドライバの場合は、このフィールドを TRANSACTION_NONE に設定します。
デフォルトは TRANSACTION_SERIALIZABLE です。
置換するパターン × × テーブルのフィールド名で置き換えるパターン(通常は [置換] プロパティで使用)。[置換] プロパティが設定されていない場合、パターンはフィールド名から削除されます。
次に変更 × × テーブルのフィールド名で置換される文字列。[置換するパターン] フィールドも構成する必要があります。
出力スキーマ × × 出力されるスキーマを指定します。出力レコードには、スキーマで定義された列のみが含まれます。

ベスト プラクティス

データベースに固有のプラグインが利用可能かどうかを確認します。たとえば、Oracle データベース ソースがある場合は、Oracle データベース バッチソース プラグインを使用します。これは、Oracle スキーマで動作するように設計されているためです。

次のステップ