Oracle の転送をスケジュールする

BigQuery Data Transfer Service for Oracle コネクタを使用すると、Oracle から BigQuery への定期的な読み込みジョブを自動的にスケジュールし、管理できます。

制限事項

Oracle の転送には次の制限があります。

  • Oracle データベースへの同時接続の最大数には上限があります。その結果、1 つの Oracle データベースへの同時転送実行数はその最大数に制限されます。
  • 次の要件を満たす Oracle データベース接続でパブリック IP が使用できない場合には、ネットワーク アタッチメントを設定する必要があります。
    • ネットワーク アタッチメントが存在するサブネットからデータソースにアクセスできる必要があります。
    • ネットワーク アタッチメントは、範囲 240.0.0.0/24 内のサブネット内に存在してはなりません。
    • アタッチメントへのアクティブな接続がある場合、ネットワーク アタッチメントは削除できません。ネットワーク アタッチメントを削除するには、Cloud カスタマーケアにお問い合わせください
    • us マルチリージョンの場合、ネットワーク アタッチメントは us-central1 リージョンに存在する必要があります。eu マルチリージョンの場合、ネットワーク アタッチメントは europe-west4 リージョンに存在する必要があります。
  • Google Cloud コンソールでは、Oracle を BigQuery Data Transfer Service に接続するための NORMAL Oracle ユーザーロールの使用のみがサポートされています。SYSDBASYSOPER の Oracle ユーザーロールを使用して接続するには、BigQuery CLI を使用する必要があります。
  • Oracle の定期的な転送の最小間隔は 15 分です。デフォルトの定期的な転送間隔は 24 時間です。

始める前に

以降のセクションでは、Oracle の転送を作成する前に必要な手順について説明します。

Oracle の前提条件

Oracle の転送を作成する場合は、Oracle データベースについて次の情報も必要です。

パラメータ名 説明
database データベースの名前。
host

データベースのホスト名または IP アドレス。

port

データベースのポート番号。

username

データベースにアクセスするためのユーザー名。

password

データベースにアクセスするためのパスワード。

connectionType

接続タイプ。値は SERVICESID または TNS です。

oracleObjects

転送する Oracle オブジェクトのリスト。

BigQuery の前提条件

必要な BigQuery のロール

転送の作成に必要な権限を取得するには、BigQuery 管理者roles/bigquery.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

転送を作成するには、次の権限が必要です。

  • ユーザーに対する bigquery.transfers.update
  • ターゲット データセットに対する bigquery.datasets.get
  • ターゲット データセットに対する bigquery.datasets.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Oracle のデータ転送を設定する

次のオプションのいずれかを選択します。

コンソール

  1. Google Cloud コンソールの [データ転送] ページに移動します。

    [データ転送] に移動

  2. [転送を作成] をクリックします。

  3. [ソースタイプ] セクションの [ソース] で、[Oracle] を選択します。

  4. [データソースの詳細] セクションで、次のようにします。

    • [ネットワーク アタッチメント] で、既存のネットワーク アタッチメントを選択するか、[ネットワーク アタッチメントの作成] をクリックします。
    • [ホスト] に、データベースのホスト名または IP を入力します。
    • [ポート] に、Oracle データベースが受信接続に使用しているポート番号(1520 など)を入力します。
    • [データベース名] に、Oracle データベースの名前を入力します。
    • [接続タイプ] に、接続 URL タイプ(SERVICESIDTNS のいずれか)を入力します。
    • [ユーザー名] に、Oracle データベース接続を開始するユーザーのユーザー名を入力します。
    • [パスワード] に、Oracle データベース接続を開始するユーザーのパスワードを入力します。
    • [転送する Oracle オブジェクト] で [参照] をクリックして、BigQuery の宛先データセットに転送するテーブルを選択します。

      • このフィールドには、データ転送に含めるオブジェクトを手動で入力することもできます。

      Oracle の転送構成を行う

  5. [転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。

  6. [転送構成名] セクションの [表示名] に、データ転送の名前を入力します。

  7. [スケジュール オプション] セクションで:

    • [繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。

    • 必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。

  8. [サービス アカウント] メニューで、Google Cloud プロジェクトに関連付けられたサービス アカウントを選択します。選択したサービス アカウントには、このデータ転送の実行に必要なロールが付与されている必要があります。

    フェデレーション ID でログインした場合、データ転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。

    データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。

  9. 省略可: [通知オプション] セクションで、次のようにします。

    • メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
    • この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
  10. [保存] をクリックします。

bq

bq mk コマンドを入力して、転送作成フラグ --transfer_config を指定します。

bq mk \
    --transfer_config \
    --project_id=PROJECT_ID \
    --data_source=DATA_SOURCE \
    --display_name=DISPLAY_NAME \
    --target_dataset=DATASET \
    --params='PARAMETERS'

ここで

  • PROJECT_ID(省略可): Google Cloud プロジェクト ID。--project_id で特定のプロジェクトを指定しない場合は、デフォルトのプロジェクトが使用されます。
  • DATA_SOURCE: データソース - oracle
  • DISPLAY_NAME: 転送構成の表示名。データ転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。
  • DATASET: 転送構成のターゲット データセット。
  • PARAMETERS: 作成される転送構成のパラメータを JSON 形式で指定します(例: --params='{"param":"param_value"}')。Oracle データ転送のパラメータは次のとおりです。

    • connector.networkAttachment(省略可): Oracle データベースに接続するネットワーク アタッチメントの名前。
    • connector.authentication.Username: Oracle アカウントのユーザー名。
    • connector.authentication.Password: Oracle アカウントのパスワード。
    • connector.database: Oracle データベースの名前。
    • connector.endpoint.host: データベースのホスト名または IP。
    • connector.endpoint.port: Oracle データベースが受信接続に使用しているポート番号(1520 など)。
    • connector.connectionType: 接続 URL タイプ(SERVICESIDTNS のいずれか)。
    • assets: BigQuery に転送する Oracle オブジェクトのパス。形式は DATABASE_NAME/SCHEMA_NAME/TABLE_NAME です。

たとえば、次のコマンドは、すべての必須パラメータを使用してデフォルト プロジェクトに Oracle データ転送を作成します。

bq mk \
    --transfer_config \
    --target_dataset=mydataset \
    --data_source=oracle \
    --display_name='My Transfer' \
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"], \
        "connector.authentication.username": "User1", \
        "connector.authentication.password":"ABC12345", \
        "connector.database":"DB1", \
        "Connector.endpoint.host":"192.168.0.1", \
        "Connector.endpoint.port":"1520", \
        "connector.connectionType":"SERVICE", \
        "connector.networkAttachment": \
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

projects.locations.transferConfigs.create メソッドを使用して、TransferConfig リソースのインスタンスを指定します。

転送の設定に関するトラブルシューティング

データ転送の設定に問題がある場合は、Oracle の転送に関する問題をご覧ください。

料金

この機能のプレビュー版では、Oracle データを BigQuery に転送する際に費用は発生しません。

次のステップ