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 ユーザーロールの使用のみがサポートされています。SYSDBA
とSYSOPER
の Oracle ユーザーロールを使用して接続するには、BigQuery CLI を使用する必要があります。 - Oracle の定期的な転送の最小間隔は 15 分です。デフォルトの定期的な転送間隔は 24 時間です。
始める前に
以降のセクションでは、Oracle の転送を作成する前に必要な手順について説明します。
Oracle の前提条件
- Oracle データベースにユーザー認証情報を作成します。
- ユーザーに
Create Session
システム権限を付与して、セッションの作成を許可します。 - ユーザー アカウントにテーブルスペースを割り当てます。
Oracle の転送を作成する場合は、Oracle データベースについて次の情報も必要です。
パラメータ名 | 説明 |
---|---|
database |
データベースの名前。 |
host |
データベースのホスト名または IP アドレス。 |
port |
データベースのポート番号。 |
username |
データベースにアクセスするためのユーザー名。 |
password |
データベースにアクセスするためのパスワード。 |
connectionType |
接続タイプ。値は |
oracleObjects |
転送する Oracle オブジェクトのリスト。 |
BigQuery の前提条件
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- データを保存する BigQuery データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
Identity and Access Management(IAM)権限があることを確認します。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
必要な BigQuery のロール
転送の作成に必要な権限を取得するには、BigQuery 管理者(roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
転送を作成するには、次の権限が必要です。
-
ユーザーに対する
bigquery.transfers.update
-
ターゲット データセットに対する
bigquery.datasets.get
-
ターゲット データセットに対する
bigquery.datasets.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Oracle のデータ転送を設定する
次のオプションのいずれかを選択します。
コンソール
Google Cloud コンソールの [データ転送] ページに移動します。
[転送を作成] をクリックします。
[ソースタイプ] セクションの [ソース] で、[Oracle] を選択します。
[データソースの詳細] セクションで、次のようにします。
- [ネットワーク アタッチメント] で、既存のネットワーク アタッチメントを選択するか、[ネットワーク アタッチメントの作成] をクリックします。
- [ホスト] に、データベースのホスト名または IP を入力します。
- [ポート] に、Oracle データベースが受信接続に使用しているポート番号(
1520
など)を入力します。 - [データベース名] に、Oracle データベースの名前を入力します。
- [接続タイプ] に、接続 URL タイプ(
SERVICE
、SID
、TNS
のいずれか)を入力します。 - [ユーザー名] に、Oracle データベース接続を開始するユーザーのユーザー名を入力します。
- [パスワード] に、Oracle データベース接続を開始するユーザーのパスワードを入力します。
[転送する Oracle オブジェクト] で [参照] をクリックして、BigQuery の宛先データセットに転送するテーブルを選択します。
- このフィールドには、データ転送に含めるオブジェクトを手動で入力することもできます。
[転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前を入力します。
[スケジュール オプション] セクションで:
[繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。
必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
[サービス アカウント] メニューで、Google Cloud プロジェクトに関連付けられたサービス アカウントを選択します。選択したサービス アカウントには、このデータ転送の実行に必要なロールが付与されている必要があります。
フェデレーション ID でログインした場合、データ転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。
データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。
省略可: [通知オプション] セクションで、次のようにします。
- メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
- この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
[保存] をクリックします。
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 タイプ(SERVICE
、SID
、TNS
のいずれか)。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 に転送する際に費用は発生しません。
次のステップ
- BigQuery Data Transfer Service の概要については、BigQuery Data Transfer Service の概要をご覧ください。
- 転送構成に関する情報の取得、転送構成の一覧表示、転送の実行履歴の表示など、転送の使用方法については、転送の操作をご覧ください。
- クロスクラウドの操作でデータを読み込む方法を学習する。