Oracle データ転送の概要

Oracle データベースから BigQuery にデータを読み込むには、 BigQuery Data Transfer Service for Oracle コネクタを使用します。このドキュメントでは、Oracle 転送の構成オプションと、データ型マッピングとメタデータの転送について説明します。

Oracle 転送をスケジュールする方法については、 Oracle データを BigQuery に読み込むをご覧ください。

データの取り込みオプション

以降のセクションでは、Oracle データ転送を設定する際のデータの取り込みオプションについて詳しく説明します。

TLS 構成

Oracle コネクタは、BigQuery へのデータ転送を暗号化するためのトランスポート レベル セキュリティ(TLS)の構成をサポートしています。Oracle コネクタは、次の TLS 構成をサポートしています。

  • データを暗号化し、CA とホスト名を検証するモード。 このモードでは、TCPS プロトコルを介した TLS を使用してサーバーの完全な検証を行います。すべての転送中のデータを暗号化し、データベース サーバーの証明書が信頼できる認証局(CA)によって署名されていることを確認します。このモードでは、接続先のホスト名がサーバーの証明書の共通名(CN)またはサブジェクト代替名(SAN)と完全に一致することも確認します。このモードでは、攻撃者が別のドメインの有効な証明書を使用してデータベース サーバーになりすますことを防ぎます。

    ホスト名が証明書の CN または SAN と一致しない場合、接続は失敗します。証明書と一致するように DNS の解決を構成するか、別のセキュリティ モードを使用する必要があります。このモードは、中間者(PITM)攻撃を防ぐための最も安全なオプションです。

  • データを暗号化し、CA のみを検証するモード。 このモードでは、TCPS プロトコルを介した TLS を使用してすべてのデータを暗号化し、クライアントが信頼する CA によってサーバーの証明書が署名されていることを検証します。ただし、このモードではサーバーのホスト名は検証されません。証明書が有効で、信頼できる CA によって発行されている限り、証明書のホスト名が接続先のホスト名と一致するかどうかに関係なく、このモードは正常に接続されます。

    このモードは、証明書が信頼できる CA によって署名されているサーバーに接続していることを確認したいものの、ホスト名が検証できない場合や、ホスト名構成を制御できない場合に使用します。

  • 暗号化のみモード。 このモードでは、標準の TCP ポートを介して Oracle のネイティブ ネットワーク暗号化を使用して、クライアントとサーバー間で転送されるすべてのデータを暗号化します。 証明書やホスト名の検証は行いません。

    このモードでは、転送中のデータを保護することで一定のセキュリティが確保されますが、PITM 攻撃に対して脆弱になる可能性があります。

    すべてのデータを暗号化する必要があるものの、サーバーの ID を検証できない場合や検証したくない場合は、このモードを使用します。プライベート VPC を使用する場合は、このモードを使用することをおすすめします。

  • 暗号化または検証なしモード。 このモードでは、データの暗号化は行われず、証明書やホスト名の検証も行われません。すべてのデータは平文で送信されます。

    機密データを扱う環境では、このモードを使用することをおすすめしません。このモードは、セキュリティが問題にならない分離されたネットワークでのテスト目的でのみ使用することをおすすめします。

信頼できるサーバー証明書(PEM)

データを暗号化して、CA とホスト名を検証するモードまたはデータを暗号化し、CA を検証するモードを使用している場合は、1 つ以上の PEM エンコード証明書を指定することもできます。これらの証明書は、BigQuery Data Transfer Service が TLS 接続中にデータベース サーバーの ID を確認する必要があるシナリオで必要になります。

  • 組織内のプライベート CA によって署名された証明書または自己署名証明書を使用している場合は、完全な証明書チェーンまたは単一の自己署名証明書を指定する必要があります。これは、Amazon Relational Database Service(RDS)などのマネージド クラウド プロバイダ サービスの内部 CA によって発行された証明書に必要です。
  • データベース サーバーの証明書がパブリック CA(Let's Encrypt、DigiCert、GlobalSign など)によって署名されている場合は、証明書を指定する必要はありません。これらのパブリック CA のルート証明書は、BigQuery Data Transfer Service によってプリインストールされ、信頼されています。

転送構成の [信頼できる PEM 証明書] フィールドに、次の要件を満たす PEM エンコード証明書を指定できます。

  • 証明書は、有効な PEM エンコード証明書チェーンである必要があります。
  • 証明書は完全に正しいものである必要があります。チェーン内の証明書が欠落している場合や、内容が正しくない場合、TLS 接続は失敗します。
  • 単一の証明書の場合は、データベース サーバーから単一の自己署名証明書を指定できます。
  • プライベート CA が発行した完全な証明書チェーンの場合は、完全な信頼チェーンを指定する必要があります。これには、データベース サーバーの証明書と、中間およびルート CA 証明書が含まれます。

完全転送または増分転送

Oracle 転送を設定するときに、転送構成で [完全] または [増分] の書き込み設定を選択することで、BigQuery へのデータの読み込み方法を指定できます。増分転送は プレビュー版でサポートされています。

完全データ転送を構成すると、 データ転送のたびに Oracle データセットからすべてのデータが転送されます。

または、増分データ転送 (プレビュー版) を構成して、データ転送ごとにデータセット全体を読み込むのではなく、最後のデータ転送以降に変更されたデータのみを転送することもできます。 データ転送で [増分] を選択した場合は、[追加] または [Upsert] の書き込みモードを指定して、データの増分転送中に BigQuery にデータを書き込む方法を定義する必要があります。以降のセクションでは、使用可能な書き込みモードについて説明します。

[追加] 書き込みモード

[追加] 書き込みモードでは、宛先テーブルに新しい行のみが挿入されます。このオプションでは、既存のレコードをチェックせずに転送されたデータが厳密に追加されるため、このモードでは宛先テーブルでデータが重複する可能性があります。

[追加] モードを選択した場合は、ウォーターマーク列を選択する必要があります。Oracle コネクタがソーステーブルの変更を追跡するには、ウォーターマーク列が必要です。

Oracle 転送の場合は、レコードが作成されたときにのみ更新され、以降の更新では変更されない列(CREATED_AT 列など)を選択することをおすすめします。

[Upsert] 書き込みモード

[Upsert] 書き込みモードでは、主キーを確認して、宛先テーブルの行を更新するか、新しい行を挿入します。主キーを指定すると、Oracle コネクタは、宛先テーブルをソーステーブルと同期するために必要な変更を特定できます。データ転送中に指定された主キーが宛先 BigQuery テーブルに存在している場合、Oracle コネクタはソーステーブルの新しいデータでその行を更新します。データ転送中に主キーが存在していない場合、Oracle コネクタは新しい行を挿入します。

[Upsert] モードを選択する場合は、ウォーターマーク列と主キーを選択する必要があります。