Openflow Connector for Oracle のインストールと構成

注釈

このコネクタは、 Snowflakeコネクタ規約 に従うものとします。

注釈

|OracleOFC|には、標準のコネクタ利用規約以外の追加利用規約も適用されます。詳しくは、`Openflow Connector for Oracle Addendum<https://www.snowflake.com/en/legal/optional-offerings/offering-specific-terms/openflow-oracle-terms/>`_を参照してください。

このトピックでは、|OracleOFC|コネクタをインストールして構成する手順について説明します。

データエンジニアとして、以下のタスクを実行してコネクタをインストールおよび構成します。

コネクタをインストールする

コネクタをインストールするには、データエンジニアとして次を実行します。

  1. Openflow概要ページに移動します。Featured connectors セクションで、 View more connectors を選択します。

  2. Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。

  3. Select runtime ダイアログで、Available runtimes ドロップダウンリストからランタイムを選択して Add をクリックします。

    注釈

    コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。

  4. Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。

  5. Snowflakeアカウント認証情報でランタイムを認証します。

コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。

コネクタを構成する

コネクタを構成するには、データエンジニアとして次の手順を実行します。

  1. 追加されたランタイムを右クリックして、:ui:`Parameters`を選択します。

  2. 必要なパラメーター値を入力します。

    必要なパラメーター値について詳しくは、次のセクションを参照してください。

Snowflake宛先パラメーター

パラメーター

説明

必須

宛先データベース

データが永続化されるデータベース。Snowflakeにすでに存在している必要があります。名前は大文字と小文字を区別します。引用符で囲まれていない識別子の場合、名前を大文字で指定します。

有り

Snowflake認証ストラテジー

以下を使用する場合:

  • Snowflake Openflow Deployment または BYOC:SNOWFLAKE_MANAGED_TOKEN を使用します。このトークンはSnowflakeによって自動的に管理されます。 BYOC デプロイメントでは、 SNOWFLAKE_MANAGED_TOKEN を使用するために、事前に ランタイムロール が構成されている必要があります。

  • BYOC: 代わりに、BYOC では認証戦略の値として KEY_PAIR を使用できます。

有り

Snowflakeアカウント識別子

以下を使用する場合:

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR: データが永続化される[organization-name]-[account-name]形式のSnowflakeアカウント名。

有り

Snowflake接続の戦略

KEY_PAIRを使用する場合は、Snowflakeに接続するための戦略を特定します。

  • STANDARD (デフォルト):Snowflakeサービスへの標準パブリックルーティングを使用して接続します。

  • PRIVATE_CONNECTIVITY:AWS PrivateLinkなど、サポート対象のクラウドプラットフォームに関連付けられたプライベートアドレスを使用して接続します。

KEY_PAIRを使用したBYOCのみに必要です。それ以外の場合は無視されます。

Snowflake秘密キー

以下を使用する場合:

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR:認証に使用される RSA プライベートキーである必要があります。

    その RSA キーは PKCS8 標準に従ってフォーマットされ、標準の PEM ヘッダーとフッターを持つ必要があります。SnowflakeプライベートキーファイルまたはSnowflakeプライベートキーのいずれかを定義する必要があることに注意してください。

無し

Snowflake秘密キーファイル

以下を使用する場合:

  • Session token authentication strategy:プライベートキーファイルは空白である必要があります。

  • KEY_PAIR:Snowflakeへの認証に使用される RSA プライベートキーを含むファイルをアップロードします。これは、PKCS8 標準に従ってフォーマットされ、標準の PEM ヘッダーとフッターを含んでいる必要があります。ヘッダー行は -----BEGIN PRIVATE で始まります。プライベートキーファイルをアップロードするには、Reference asset チェックボックスを選択します。

無し

Snowflake秘密キーパスワード

以下を使用する場合

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR:Snowflakeプライベートキーファイルに関連付けられたパスワードを提供します。

無し

Snowflakeロール

以下を使用する場合

  • Session Token Authentication Strategy:ランタイムに割り当てられたSnowflakeロール、またはこのSnowflakeロールに付与された子ロールを使用します。Openflow UIのランタイムのSnowflakeロールは、ランタイムの:ui:`More Options [⋮]`ボタンを展開して:ui:`Set Snowflake role`を選択することで見つけることができます。

  • KEY_PAIR Authentication Strategy:サービスユーザーのために構成された有効なロールを使用します。

有り

Snowflakeのユーザー名

以下を使用する場合

  • Session Token Authentication Strategy: 空白にする必要があります。

  • KEY_PAIR:Snowflakeインスタンスへの接続に使用するユーザー名を提供します。

有り

オーバーサイズ値戦略

複製中にコネクタが内部サイズ制限(16MB)を超える値を処理する方法を決定します。可能な値は次のとおりです。

  • **失敗テーブル**(デフォルト):テーブルは永久に失敗したものとしてマークされ、そのテーブルの複製が停止します。

  • Nullの設定:値は宛先テーブルで``NULL``に置き換えられます。オーバーサイズ値を超えるテーブル内のデータが失われても許容できる場合、これを使用してテーブルの失敗を防ぎます。

無し

Snowflakeウェアハウス

クエリの実行に使用されるSnowflakeウェアハウス。

有り

Oracle取り込みパラメーター

パラメーター

説明

含まれるテーブル名

完全修飾テーブルパスのコンマ区切りリスト。テーブルは、完全修飾データベース、スキーマ、テーブル名の形式(DATABASE_NAME.SCHEMA_NAME.TABLE_NAME)を使用して指定する必要があります。

例: MYPDB.SALES.CUSTOMERS, MYPDB.SALES.ORDERS

含まれるテーブル正規表現

既存および新しいテーブルを自動的に含めるための、テーブルパスに一致する正規表現。正規表現パターンは、DATABASE_NAME.SCHEMA_NAME.TABLE_NAMEの3部構成の命名規則に一致する必要があります。

例: MYPDBデータベース内のSALESスキーマにあるすべてのテーブルに一致させるために:code:`MYPDB\.SALES\..*`とします。

フィルター JSON

指定されたテーブルの正規表現パターンに基づいて特定の列を含めるためのJSON配列。

タスクスケジュール CRON をマージする

ジャーナルから宛先テーブルへのマージ操作がトリガーされるタイミングを定義するCRON式。たとえば、継続的なマージの場合は * * * * * ?とします。

オブジェクト識別子の解決

スキーマ名、テーブル名、列名などのソースオブジェクト識別子をSnowflakeに格納し、クエリする方法を指定します。この設定では、SQLクエリで二重引用符を使用する必要があるかどうかを指定します。

オプション1:デフォルトで、大文字と小文字を区別しない(推奨)。

  • 変換:識別子はすべて大文字に変換されます。たとえば、 My_TableMY_TABLE になります。

  • クエリ: SQL クエリは大文字と小文字を区別せず、 SQL 二重引用符は必要ありません。

    たとえば、 SELECT * FROM my_table;SELECT * FROM MY_TABLE; と同じ結果を返します。

注釈

Snowflakeでは、データベースオブジェクトに大文字と小文字が混在する名前が想定されない場合、このオプションを使用することを推奨しています。

オプション2: 大文字と小文字を区別する。

  • 変換:大文字小文字は維持されます。たとえば、 My_TableMy_Table のままです。

  • クエリ: SQL クエリは、データベースオブジェクトの大文字と小文字を正確に一致させるために、二重引用符を使用する必要があります。例: SELECT * FROM "My_Table";

重要

コネクタの取り込み開始後は、この設定を変更しないでください。取り込み開始後にこの設定を変更すると、既存の取り込みは中断されます。この設定を変更する必要がある場合は、新しいコネクタインスタンスを作成してください。

スナップショットのフェッチ戦略

スナップショットロードのフェッチ戦略を決定します。

  • SEQUENTIAL_BY_PRIMARY_KEY (デフォルト):主キーによって順次取得される固定サイズのバッチを使用します。

  • CONCURRENT_BY_ROWID:物理行IDの範囲によって境界されたチャンクにテーブルを分割し、各チャンクを並行して取得します。

Oracleソースパラメーター

パラメーター

説明

必須

Oracle接続URL

DBへのデータベース接続のJDBC URL。URLは、複製するデータを含むターゲットコンテナ(PDBまたはCDB)を指定する必要があります。たとえば、YOUR_DB_NAMEがPDBまたはCDBの名前である場合、:code:`jdbc:oracle:thin@<host>:<port>/YOUR_DB_NAME`とします。

注釈

コネクタは単一のデータベース/コンテナ内で機能します。JDBCURLが、複製するテーブルを保持するコンテナを直接指していることを確認してください。

有り

Oracleユーザー名

XStreamサーバーにアクセスできる接続ユーザーのユーザー名。

有り

Oracleパスワード

XStreamサーバーにアクセスできる接続ユーザーのパスワード。

有り

Oracleデータベースプロセッサ乗数

`Oracle Processor Core Factor Table<https://www.oracle.com/contracts/docs/processor-core-factor-table-070634.pdf>`_で説明されているコアプロセッサーライセンス要素

組み込みライセンスにのみ必要

Oracleデータベースプロセッサコア

Oracleデータベースのプロセッサコアの数。

組み込みライセンスにのみ必要

XStream請求の承認

ライセンス契約の確認

組み込みライセンスにのみ必要

XStreamアウトサーバー名

Oracleに既に存在する必要があるXStreamサーバーの名前。

有り

XStreamアウトサーバーURL

XStreamのデータベース接続のJDBC URLでは、OCIドライバーを使用する必要があります。例: jdbc:oracle:oci:@<host>:<port>/SID

有り

テーブル複製の再開

(主キーが欠落している、またはスキーマの変更がサポートされていないなどの理由で) FAILED 状態のテーブルは、自動的に再開されません。テーブルが FAILED 状態になった場合、または複製を最初から再開する必要がある場合は、次の手順に従ってテーブルを削除し、複製に再度追加します。

注釈

主キーが欠落しているなど、ソーステーブルの問題が原因で障害が発生した場合は、続行する前にソースデータベースでその問題を解決します。

  1. フローパラメーターからテーブルを削除します。取り込みパラメーターのコンテキストで、Included Table Names からテーブルを削除するか、Included Table Regex を変更してテーブルが一致しないようにします。

  2. テーブルが削除されたことを確認します。

    1. Openflowランタイムキャンバスで、プロセッサーグループを右クリックし、Controller Services を選択します。

    2. コントローラーサービスをリストしたテーブルで、Table State Store 行を見つけ、行の右側にある縦3つのドットをクリックして、View State を選択します。

    重要

    続行する前に、テーブルの状態がこのリストから完全に削除されるまで待つ必要があります。この構成変更が完了するまで続行しないでください。

  3. 宛先をクリーンアップする:テーブルの状態が完全に削除されたと表示されたら、Snowflake で宛先テーブルを手動で DROP します。スナップショットフェーズ中に、コネクタは既存の宛先テーブルを上書きしないことに注意してください。テーブルがまだ存在する場合、複製は再度失敗します。オプションで、ジャーナルテーブルとストリームが不要になった場合は削除することもできます。

  4. テーブルを再追加する::ui:`Included Table Names`または:ui:`Included Table Regex`パラメーターを更新して、テーブルを再度含めます。

  5. 再開を確認する:前述の指示に従って Table State Store をチェックします。テーブルの状態は、ステータス NEW で表示され、次に SNAPSHOT_REPLICATION に移行し、最後に INCREMENTAL_REPLICATION になります。

フローを実行する

  1. プレーンを右クリックし、 Enable all Controller Services を選択します。

  2. インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。

次のステップ

  • (オプション):doc:スナップショットなしの増分複製を設定する<incremental-replication>

  • フローをモニターする