3 Oracle Autonomous Data Warehouse Cloud

この章では、Oracle Data IntegratorでのAutonomous Data Warehouse Cloud (ADWC)の使用方法について説明します。

この章の内容は次のとおりです。

3.1 概要

Autonomous Data Warehouse Cloud (ADWC)は、データベースおよびOracleオブジェクト・ストアに格納されたデータの分析を可能にする、パフォーマンスと柔軟性に優れたフルマネージド型のクラウド・サービスです。

Oracle Data Integrator (ODI)では、ADWCがシームレスに統合されます。ODIをADWCに統合することで、データ・ウェアハウスのワークロード用にチューニングされ最適化されたフルマネージド型の環境でOracle Databaseのパフォーマンスを最大限に活用できます。

3.1.1 概念

Oracle ADWCの概念は、Oracle Data Integratorの概念に次のようにマップされます。1つのOracle ADWCインスタンスはOracle Data Integratorの1つのデータ・サーバーに対応します。このインスタンス内で、1つのスキーマはOracle Data Integratorの1つの物理スキーマにマップされます。1つのスキーマ内の関連する一連のオブジェクトが1つのデータ・モデルに対応し、各表、ビューまたはシノニムが、その属性、列および制約とともにODIデータストアとして表示されます。

Oracle Data Integratorでは、Java Database Connectivity (JDBC)を使用してOracle ADWCインスタンスに接続します。ADWCへのすべての接続で、Oracleウォレットを使用して公開キーのセキュリティ資格証明を管理する必要があります。

3.1.2 ナレッジ・モジュール

Oracle Data Integratorには、ADWCにデータをロードするための次のナレッジ・モジュール(KM)が用意されています。KMでは、Oracle固有の機能が使用されます。ADWCでは、汎用SQL KMを使用することもできます。

表3-1 ADWCナレッジ・モジュール

ナレッジ・モジュール 説明

LKM SQL to Oracle (Built-In)

任意のANSI SQL-92ソース・データベースからOracleステージング領域へデータをロードします。

LKM SQL Multi-Connect

ターゲット表に対する複数接続IKMの使用を有効にします。組込みIKMです。

LKM File to Oracle (SQLLDR)

SQL*Loaderコマンド行ユーティリティを使用して、ファイルからOracleステージング領域へデータをロードします。

IKM SQL to File Append

任意のANSI SQL-92準拠ステージング領域からターゲット・ファイルに、置換モードでデータを統合します。

IKM Oracle Insert

追加モードでOracleターゲット表にデータを統合します。単一のINSERT SQL文で、ターゲット表にデータが直接ロードされます。組込みKMです。

IKM Oracle Update

増分更新モードでOracleのターゲット表にデータを統合します。単一のUPDATE SQL文で、ターゲット表にデータが直接ロードされます。組込みKMです。

IKM Oracle Merge

増分更新モードでOracleのターゲット表にデータを統合します。単一のMERGE SQL文で、ターゲット表にデータが直接ロードされます。組込みKMです。

IKM Oracle Multi-Insert

複数表挿入文(MTI)を使用して、1つのソースのデータを1つ以上のOracleターゲット表に追加モードで統合します。このIKMを単一のマッピングで利用して、複数のターゲットをロードできます。組込みKMです。

RKM Oracle

表、ビュー、列をリバース・エンジニアリングし、Oracle Data Integratorマッピングでターゲットまたはソースとして使用されるデータ・モデルを作成します。

LKM SQL to ADWC External Table

Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。

LKM SQL to ADWC Copy

Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。

LKM SQL to ADWC Copy Direct

Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCへデータをロードします。どのIKMも必要としないため、このLKMはスタンドアロンKMとして使用できます。

LKM File to ADWC External Table

Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。

LKM File to ADWC Copy

Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。

LKM File to ADWC Copy Direct

Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCへデータをロードします。その実装にIKMを必要としないため、このLKMはスタンドアロンKMとして使用できます。

LKM Oracle to ADWC Datapump

Oracleオンプレミス製品からOracle ADWCへデータをロードします。これは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

LKM Object Storage to ADWC Copy

Oracle Cloud Object StorageからOracle ADWCへデータをロードします。これは、Oracleまたは汎用SQL IKMと組み合せて使用できます

LKM Object Storage to ADWC Copy Direct

Oracle Cloud Object StorageからOracle ADWCへデータをロードします。このLKMを使用して、Oracle Object StorageからADWC表へファイル/オブジェクトを移動できます。

LKM Object Storage to ADWC External Table

外部表の方法を使用して、Oracle Object StorageからOracle ADWCへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

3.2 前提条件

ADWC環境に接続するための前提条件を次に示します。ADWC環境に接続する前に、次の前提条件が満たされていることを確認してください。

ノート:

次の前提条件は、ODI StudioとODIエージェントの両方に共通です。

Walletの構成

ADWCへのすべての接続で、Oracleウォレットを使用して公開キーのセキュリティ資格証明を管理する必要があります。ウォレットは、認証および署名資格証明(秘密キー、証明書、SSLで必要な信頼できる証明書など)の格納に使用されるパスワード保護されたコンテナです。Oracleウォレットにより、複数のドメインにわたりデータベース資格証明を管理する簡単な方法が提供されます。ウォレットを更新することでデータベース資格証明を更新できます。このとき、個々のデータ・ソース定義を変更する必要はありません。ADWCに接続するには、アプリケーションからOracleウォレットにアクセスする必要があります。

ウォレットの詳細は、『Oracle Databaseセキュリティ・ガイド』のアプリケーション開発者のセキュリティの管理アプリケーション設計におけるパスワードの保護に関する項を参照してください。

JDBCプロパティにはウォレット・ファイルの場所が必要です。

  • ADWCウォレットの場所からウォレットのzipファイルを取得し、ODI StudioとODIエージェントの両方からアクセスできるローカル・ディレクトリに配置します。ウォレット・ファイルのデフォルトの場所は、<homedir>/.odi/oracledi/ewalletです。自動ログイン・ウォレットの場合は、zipをウォレット・ファイルとしてアップロードします。

Javaセキュリティの構成

ノート:

次に示すステップは、JDK1.8.0_u161以上のバージョンでは不要です。
JDK_HOME\jre\lib\securityjava.securityファイルを更新し、次に示すようにコードの次の行を追加します。
  • security.provider.10=sun.security.mscapi.SunMSCAPI

  • security.provider.11=oracle.security.pki.OraclePKIProvider

security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
security.provider.11=oracle.security.pki.OraclePKIProvider

OCI接続の準備

次のステップに従って、OCI接続を作成します。

  1. Oracle Instant Clientバージョン12.2.0.1.0をダウンロードしてインストールします。手順は、http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.htmlを参照してください

  2. Oracle Instant Clientをインストールしたら、LD_LIBRARY_PATHという環境変数にそのフォルダを追加します。export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/oracle/instantclient_12_2

  3. 資格証明ファイルを新しいディレクトリ(つまり、/home/oracle/wallet)に解凍します

  4. 新しいウォレット・ディレクトリにナビゲートして、sqlnet.oraファイルを次のように変更します。

    • ウォレット・ロケーションを指定します。

      たとえば —
      WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY=/home/oracle/wallet)))
    • sqlnet.oraファイルに次の2つのSSLパラメータを追加します。
      SSL_SERVER_DN_MATCH= TRUE 
      SSL_VERSION = 1.2 
  5. 解凍された資格証明ファイルがある場所(ディレクトリ)に、TNS_ADMINを変更または設定します。たとえば、ウォレット・ファイルが/home/oracle/walletというディレクトリに解凍された場合、TNS_ADMINパラメータを次のように設定します。

    TNS_ADMIN=/home/oracle/wallet

OCIのエージェント構成

ODIエージェント(スタンドアロンおよびJ2EE)とADWCを接続するには、OCIを使用するように次の構成を実行します。

  • ODI Studioを起動する前に、ローカル(エージェントなし)、ODIスタンドアロン・エージェントおよびJ2EEエージェントで、LD_LIBRARY_PATHパラメータに対してInstant Clientフォルダを設定します。たとえば、export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/oracle/instantclient_12_2

    ノート:

    LD_LIBRARY_PATHパラメータで指定されるjarまたはディレクトリの既存の値は、現在のバージョンのInstant Clientのjarと一貫している必要があります。そうでない場合、エラーが発生します。
  • ODIスタンドアロン・エージェントについては、スタンドアロン・ドメインのinstance.sh/cmdにあるInstant Clientのライブラリ・パスをODI_ADDITIONAL_JAVA_OPTIONS変数に構成します。instance.shファイルは<DOMAIN_HOME>config/fmwconfig/components/ODI/<agent-name>/binにあります。たとえば、
    ODI_ADDITIONAL_JAVA_OPTIONS="${ODI_ADDITIONAL_JAVA_OPTIONS} -Djava.library.path=${ODI_HOME}/../sdk/lib:/home/oracle/instantclient_12_2"
    
  • ODI J2EEエージェントについては、JAVA_OPTIONSパラメータを$JAVA_OPTIONS -Djava.library.path=/home/oracle/instantclient_12_2に設定します。たとえば、export JAVA_OPTIONS="$JAVA_OPTIONS -Djava.library.path=/home/oracle/instantclient_12_2"

3.3 トポロジの設定

ノート:

ADWCデータ・サーバーは、Oracle Technologyの下に作成されることに注意してください。

トポロジの設定には次が含まれます。

3.3.1 Oracleデータ・サーバーの作成

『Oracle Data Integratorの管理』のデータ・サーバーの作成に関する項に記載されている標準の手順で、ADWC用データ・サーバーを作成します。この項では、ADWC用のOracle Technologyの下に作成されたデータ・サーバーで設定する必要があるプロパティのみを説明します。
  1. 「定義」タブ:

    データ・サーバー

    • 名前: データ・サーバー定義の名前を入力します

    • インスタンス/dblink: このOracleインスタンスに使用されるTNS別名。データベース・リンクおよびSQL*Loaderの使用時に、Oracleインスタンスを識別するために使用されます。

    接続

    • ユーザー/パスワード: ソース・スキーマでの選択権限、ターゲット・スキーマでの選択および挿入の権限、およびこのデータ・サーバーの下に作成されたOracle物理スキーマ内に示される作業スキーマでの選択、挿入およびオブジェクト作成の権限を持つOracleユーザー(およびユーザーのパスワード)。

    • JNDI接続: このチェック・ボックスを選択して、JNDI接続設定を構成します。「JNDI」タブに移動して、必要なフィールドに入力します。

      ノート:

      JNDI接続フィールドは、ADWCには適用されません。
    • 資格証明ファイルの使用

      ノート:

      ADWCでは資格証明ファイルを使用する必要があることに注意してください。
      このチェック・ボックスを選択して、事前構成されたウォレット・ファイル脚注1または資格証明zipファイルから接続の詳細を直接アップロードします。前述の「JNDI接続」チェック・ボックスは無効になり、ウォレット機能に関する次のフィールドが表示されます。

    資格証明詳細

    • 資格証明ファイル: 「資格証明ファイル」テキスト・ボックスの横にある「参照」アイコンをクリックして、接続の詳細を含む必要なウォレット・ファイルの場所を参照します。

      デフォルトでは、資格証明の場所は、<homedir>/.odi/oracledi/ewalletに存在するログインで使用されたものと同じウォレット・ファイル(ewallet.p12)または資格証明zipファイル(自動ログイン・ウォレット)を指し示すように移入されます。必要なデータベース接続の詳細とともにこの資格証明ファイルが格納されている他の任意の場所を参照することもできます。

      ノート:

      ODIスーパーバイザは、パスワードで保護されたウォレットおよび資格証明zipファイルを他のODIユーザーに配布できます。
    • 「接続の詳細」ドロップダウン矢印をクリックして、tnsnames.oraから取得された使用可能な接続URLのリストから必要な接続URLを選択します。

    • 必要な接続URLを選択すると、「JDBCドライバ」、「JDBC URL」、「ユーザー名」および「パスワード」フィールドは無効になり、関連するユーザー名、パスワード、JDBC URLおよびJDBCドライバの詳細は、事前構成されたウォレット・ファイルまたは資格証明zipファイルから取得された資格証明を使用して自動移入されます。これらは、ウォレット・ファイル(ewallet.p12)または資格証明zip (tnsnames.ora)に含まれる接続のリストを介してのみ変更できます。

    • 「保存」をクリックして、データ・サーバーの詳細を保存します

    • 「テスト接続」をクリックして、確立された接続をテストします

  2. ADWCデータ・サーバー(Oracle Technologyを使用)では、JDBCがサポートされます。「JDBC」タブの次の詳細を入力します。

    ODIユーザーは、Thin接続またはOCI接続を使用して、ADWCにアクセスできます。

    ノート:

    「JDBC」タブは、資格証明ファイルに格納されたJDBC情報を使用して自動移入されます。「JDBC」タブに自動移入された情報を確認して、編集できます(必要な場合のみ)。
    • JDBCドライバ: データ・サーバーへの接続に使用するJDBCドライバの名前。oracle.jdbc.OracleDriver

    • JDBC URL: データ・サーバーに接続できるURL。

      JDBC URLの書式: jdbc:oracle:thin:@<network name or ip address of the Oracle machine>:<port of the Oracle listener (1521)>:<name of the Oracle instance>

      1. Oracle JDBCシン・ドライバを使用してADWCインスタンスを接続するには、次のようにデータベースURLを使用します。

        jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<hostname or ipaddress>)(PORT=<port>))(CONNECT_DATA=(SERVICE_NAME=<db service>)) (security=(ssl_server_cert_dn="<certificate_info>")) )

        たとえば(description= (address=(protocol=tcps)(port=1522)(host=129.146.11.169))(connect_data=(service_name="<dbservice.oracle.com>"))(security=(ssl_server_cert_dn="<certificate_info>")

      2. JDBC OCIを使用してADWCインスタンスを接続するには、次のようにデータベースURLを使用します。

        jdbc:oracle:oci8:@tnsname (ここで、tnsnameはサーバーまたはSID、あるいはポートの組合せを識別するネットワーク名です)。

        たとえば - jdbc:oracle:oci8:@adwc_high

    • JDBCプロパティ: (ウォレット固有のプロパティ)

      • oracle.net.ssl_server_dn_match = true

      • oracle.net.wallet_location =(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=<wallet_directory>))

        たとえば —WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/network/admin/ewallet")))

        このプロパティは、サーバーの識別名(DN)をそのサービス名と強制的に一致させるために使用します。

3.3.2 Oracle物理スキーマの作成

『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してADWC用のOracle物理スキーマを作成します。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

3.4 Oracleモデルの作成およびリバース・エンジニアリング

この項では、次の項目について説明します。

3.4.1 Oracleモデルの作成

『Oracle Data Integratorでの統合プロジェクトの開発』のモデルの作成に関する項の説明に従って、標準の手順を使用してOracleモデルを作成します。

3.4.2 Oracleモデルのリバース・エンジニアリング

ADWC用のOracleモデルでは、JDBCドライバの機能のみを使用する標準のリバース・エンジニアリング、およびRKMを使用してOracleディクショナリからオブジェクトの構造を直接取得するカスタマイズされたリバース・エンジニアリングの両方がサポートされています。

通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。Oracleで標準のリバース・エンジニアリングを使用すると、表、ビュー、列および参照が取得されます。

それ以外のメタデータを取得する場合に、カスタマイズされたリバース・エンジニアリングに切り替えることを検討してください。Oracleのカスタマイズされたリバース・エンジニアリングでは、表およびビューの構造(列、索引、チェック制約、シノニムおよび参照)が取得されます。

標準のリバース・エンジニアリング

ADWC用Oracleモデルで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。

カスタマイズされたリバース・エンジニアリング

RKMを使用してADWC用Oracleモデルでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。

この項では、Oracleテクノロジ固有のフィールドのみについて説明します。Oracleモデルの「リバース・エンジニアリング」タブで、「KM — RKM Oracle.<project name>」を選択します。

3.5 マッピングの設計

Oracle ADWCをマッピングのソースまたはターゲットとして使用できます。ADWC用のOracleテクノロジに基づくETL形式のマッピングを作成することもできます。

この項に示す推奨事項は、Oracle Databaseサーバーに関連する様々な状況でのKMの選択に役立ちます。

3.5.1 データのロード

マッピングのソースまたはターゲットとしてADWCを使用できます。Oracleと別のタイプのデータ・サーバー間でデータをロードする目的で、ナレッジ・モジュールをロードするためのマッピングで使用されるLKMの選択により、マッピングの動作とパフォーマンスが決定されます。

次のKMには、Oracleデータベースからターゲット・データベース(ADWC)へデータをロードするための最適化されたメソッドが実装されています。主要な目的は、ADWCにデータをロードすることです。これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。

3.5.1.1 Oracle KMを使用したデータのロード

ADWC Oracleデータストアをターゲットにするマッピングを設計することで、次のOracle KMを使用してOracle表にデータをロードできます。マッピングに使用できるKMは次のとおりです。

  • LKM SQL to Oracle (Built-In)

  • IKM Oracle Insert

  • IKM Oracle Update

  • IKM Oracle Merge

  • IKM Oracle Multi-Insert

3.5.1.2 SQL*Loader KMを使用したデータのロード

SQL*Loader KMを使用してADWC用のOracle表にデータをロードすることもできます。LKM File to Oracle (SQLLDR)では、ファイルからOracle表にデータがロードされます。ADWC用Oracleスキーマのデータ・ストアをマッピングのターゲットとして使用するマッピングを設計できます。この場合、データはSQL*Loader KMを使用してロードされます。

SQL*Loader KMの接続設定

tnsnames.oraおよびsqlnet.oraのプロパティがウォレット・ファイルを使用するように構成されていることを確認します。

たとえば:

  1. sqlnet.ora :
    WALLET_LOCATION=(SOURCE = (METHOD = file)
    (METHOD_DATA = (DIRECTORY="<wallet_directory>")))
    SSL_SERVER_DN_MATCH=yes
  2. tnsnames.ora :

    • <db_name>_DB_high=(description=(address=(protocol=tcps)(port=<port>)(host=<hostname or ipaddress>))(connect_data=(service_name=<db_service>))(security=(ssl_server_cert_dn="<certificate_info>")) )

    • <db_name>_DB_medium=(description=(address=(protocol=tcps)(port=<port>)(host=<hostname or ipaddress>))(connect_data=(service_name=<db_service>))(security=(ssl_server_cert_dn="<certificate_info>")) )

    • <db_name>_DB_low=(description=(address=(protocol=tcps)(port=<port>)(host=<hostname or ipaddress>))(connect_data=(service_name=<db_service>))(security=(ssl_server_cert_dn="<certificate_info>")) )

詳細は、『Oracle Databaseセキュリティ・ガイド』の外部パスワード・ストアを使用したパスワードの保護に関する項を参照してください。

3.5.1.3 ADWCへのデータの直接ロード

次のナレッジ・モジュールを使用して、Oracle ADWCにデータを直接ロードできます。

ADWCにデータを直接ロードするには、マッピングのソースをファイル/HDFSまたはSQLテクノロジ(Oracleなど)に設定します。マッピングのターゲットは、Oracleテクノロジ(具体的にはADWCデータベース)にする必要があります。オブジェクト記憶域ステージング領域は、一時的にファイルを格納するために使用され、KMオプションTEMP_OBJECT_STORAGE_SCHEMA (論理スキーマ)を設定することで定義されます。ユーザー/パスワードなどの一部のプロパティは、TEMP_OBJECT_STORAGE_SCHEMA論理スキーマにアタッチされたOracle Object Storageデータ・サーバーから取得されます。SQLソースの場合に一時ローカル・ファイルを作成する必要がある場合、TEMP_FILE_SCHEMA KMオプションとしてその場所を定義する必要があります。変換コンポーネントを使用する場合、それらはソース実行ユニット(SQLがソースの場合)またはターゲットADWC実行ユニット(あるいはその両方)に含めることができます。ソースとしてのファイルでは、ソース変換がサポートされません。直接コピーKMでは、ターゲットでの変換がサポートされません。

3.5.1.3.1 LKM SQL to ADWC External Table

このLKMは、Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCへデータをロードする際に役立ちます。SQL問合せによる結果は、最初にOracle Object Storageステージング領域にロードされ、次に外部表の方法を使用してOracle Object Storageからデータが取得されます。TEMP_OBJECT_STORAGE_SCHEMAおよびTEMP_FILE_SCHEMA KMオプションを設定して、一時記憶域の場所を指定する必要があります。

このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。

KMは、ODIツールのOdiSqlUnloadを起動し、SQL問合せデータをローカル・ファイルにアンロードします。

たとえば -
OdiSqlUnload "-FILE=/tmp/odi_e3a779f8-ddd3-49d2-9575-a9f3c675b0f6_FILTER_AP.txt" "-DRIVER=oracle.jdbc.OracleDriver" "-URL=jdbc:oracle:thin:@//slc03sap:1521/flex" "-USER=system" "-PASS=<@=odiRef.getInfo("SRC_ENCODED_PASS") @>" "-FILE_FORMAT=VARIABLE" "-FIELD_SEP=," "-ROW_SEP=" "-DATE_FORMAT=MM-DD-YYYY" "-CHARSET_ENCODING=ISO8859_1"

SELECT
  PER.PID AS PID ,
  PER.PNAME AS PNAME 
FROM
  UT_TD_D_1.PERSON PER
WHERE (PER.PID = 2)

次に、KMは、ODIツールのOdiObjectStorageUploadをコールし、ローカル・ファイルをOracle Object Storageにアップロードします。

OdiObjectStorageUpload "-TRG_LOGICAL_SCHEMA=Object Storage - SRC1" "-SRC_LOGICAL_SCHEMA=FILE_GENERIC_TMP" "-FILE_NAMES_FILTER=odi_e3a779f8-ddd3-49d2-9575-a9f3c675b0f6_FILTER_AP.txt" "-OVERWRITE=true"

KMは、一時ステージング外部表を作成し、Oracle Object Storageからデータを取得します。

BEGIN
  dbms_cloud.create_external_table(
    table_name =>'C$_0FILTER_EXT',
    credential_name =>'ODI',
    file_uri_list =>'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/odi_e3a779f8-ddd3-49d2-9575-a9f3c675b0f6_FILTER_AP.txt',
    column_list => 'PID NUMBER(2), PNAME VARCHAR2(20)',
    format => json_object(
    'type' VALUE 'CSV',
    'skipheaders' VALUE '0',
    'dateformat' VALUE 'AUTO')
 );
END;

KMは、オプションで資格証明オブジェクトを作成してオブジェクト記憶域に接続しますが、既存のものを再利用することもできます。

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );
END;

ノート:

LKM SQL to ADWC External Tableには、日時データ型を書式設定するための2つの異なるKMオプションがあります。
  1. UNLOAD_DATE_FORMAT - テキスト・ファイルにSQL問合せをアンロードする際にこのKMオプションを使用します。この書式設定構文は、Javaの日時パターンに準拠しています。

  2. DATE_FORMAT - ADWCにオブジェクト記憶域テキスト・ファイルをロードする際にこのKMオプションを使用します。この書式設定構文は、DATEデータ型を書式設定するためのOracleデータベース構文に準拠しています。

TIMESTAMP列にロードする場合、拡張オプションのADD_FORMAT_PROPERTIESを使用してtimestampformatプロパティを追加します。UNLOAD_DATE_FORMATDATE_FORMAT/timestampformatを同期して同一の書式設定を使用することは、それらが異なる構文を使用している場合であっても非常に重要です。

次に、ソースTIMESTAMP列からターゲットTIMESTAMP列にロードする例を示します。

UNLOAD_DATE_FORMAT = yyyy-MM-dd
UNLOAD_TIMESTAMP_FORMAT = HH:mm:ss.SSS
ADD_FORMAT_PROPERTIES = 'timestampformat' VALUE 'YYYY-MM-DD HH24:MI:SS.FF3’

TIMESTAMP列の精度で所定の書式を格納できることも確認してください。

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL - 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • TEMP_OBJECT_STORAGE_SCHEMA — Oracle Object Storageステージング領域に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、Oracle Object Storageテクノロジの論理スキーマである必要があります。

  • CLEANUP_TEMPORARY_OBJECTS— 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • ADD_COMPRESSION — ロードする前にデータを圧縮します。Oracle Object Storageにロードする前にソース・データを圧縮する場合、このプロパティをTrueに設定します。追加KMオプションのCOMPRESSION_TYPEおよびKEEP_SOURCE_FILESで、圧縮プリファレンスを定義します。

  • COMPRESSION_TYPE - 必要な圧縮タイプを構成できます。Oracle Object Storageにロードする前にソース・データに適用する圧縮タイプを選択します。

  • KEEP_SOURCE_FILES — このKMオプションを使用して、圧縮後も元のソース・ファイルを維持します。ターゲット・ファイルを圧縮して元のファイルを維持する場合、このプロパティをTrue (デフォルト)に設定します。

    ノート:

    gzipでは、バージョン1.6以上でのみ、KEEP_SOURCE_FILESオプションがサポートされます。

書式設定

  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。使用可能な3つの圧縮タイプまたはAUTOがあります。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT - 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS— 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。切捨てオプションの付属リストから必要な切捨てオプションを選択します。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

拡張

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

クリーンアップ

  • CLEANUP_EXTERNAL_TABLE— 実行が終了するたびに外部表を自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

SQLアンロード・オプション

  • TEMP_FILE_SCHEMA — Oracle Object Storageへのアップロード前に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、ファイル・テクノロジの論理スキーマである必要があります。一時ファイルは、ODIエージェントが実行されているローカル・ファイル・システムに格納されます。

  • UNLOAD_DATE_FORMAT— 日付データ型に使用する出力書式を指定します。この書式は、Javaの日付書式標準に準拠しています。

  • UNLOAD_TIMESTAMP_FORMAT— 時間データ型に使用する出力書式を指定します。この書式は、Javaの時間書式標準に準拠しています。

  • CHARSET_ENCODING — 文字セットのエンコーディングに使用します。

  • FETCH_SIZE — ODIエージェントがデータ・サーバーとの1回の通信でリクエストする行(読み取るレコード)の数を指定します。

3.5.1.3.2 LKM SQL to ADWC Copy

たとえば

このLKMは、Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCへデータをロードする際に役立ちます。SQL問合せによる結果は、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data ()を使用して、Oracle Object StorageからADWCのステージング表にデータをロードします。TEMP_OBJECT_STORAGE_SCHEMAおよびTEMP_FILE_SCHEMA KMオプションを設定して、一時記憶域の場所を指定する必要があります。

このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

OdiSqlUnloadおよびOdiObjectStorageUploadは、LKM SQL to ADWC External Tableでの説明と同じステップに従います。LKM SQL to ADWC Copyは、ADWC実行ユニットに一時ステージング表を作成し、dbms_cloud.copy_data()ファンクションを使用してそこにオブジェクト・ストアからデータを取得します。

create table STAR.C$_0FILTER
(
  PID NUMBER(2),
  PNAME VARCHAR2(20)
)
BEGIN
  dbms_cloud.copy_data(
    schema_name => 'STAR',
    table_name =>'C$_0FILTER',
    credential_name =>'ODI',
    file_uri_list =>'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/odi_d0b58fb8-bde5-4ce5-89da-0d258c98380e_FILTER_AP.txt',
    format => json_object(
    'type' VALUE 'CSV',
    'skipheaders' VALUE '0',
    'dateformat' VALUE 'AUTO')
 );
END;

KMは、オプションで資格証明オブジェクトを作成してOracle Object Storageに接続しますが、既存のものを再利用することもできます。

BEGIN  
  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );
END;

ノート:

LKM SQL to ADWC Copyには、日時データ型を書式設定するための2つの異なるKMオプションがあります。
  • UNLOAD_DATE_FORMAT - テキスト・ファイルにSQL問合せをアンロードする際にこのKMオプションを使用します。この書式設定構文は、Javaの日付パターンに準拠しています。

  • DATE_FORMAT — ADWCにオブジェクト記憶域テキスト・ファイルをロードする際にこのKMオプションを使用します。この書式設定構文は、DATEデータ型を書式設定するためのOracleデータベース構文に準拠しています。

TIMESTAMP列にロードする場合、拡張オプションのADD_FORMAT_PROPERTIESを使用してtimestampformatプロパティを追加します。UNLOAD_DATE_FORMATDATE_FORMAT/timestampformatを同期して同一の書式設定を使用することは、それらが異なる構文を使用している場合であっても非常に重要です。

次に、ソースTIMESTAMP列からターゲットTIMESTAMP列にロードする例を示します。

  • UNLOAD_DATE_FORMAT = yyyy-MM-dd HH:mm:ss.SSS

  • ADD_FORMAT_PROPERTIES = 'timestampformat' VALUE 'YYYY-MM-DD HH24:MI:SS.FF3'

    TIMESTAMP列の精度で所定の書式を格納できることも確認してください。

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • TEMP_OBJECT_STORAGE_SCHEMA — オブジェクト記憶域ステージング領域に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、Oracle Object Storageテクノロジの論理スキーマである必要があります。

  • ADD_COMPRESSION — ロードする前にデータを圧縮します。Oracle Object Storageにロードする前にソース・データを圧縮する場合、このプロパティをTrueに設定します。追加KMオプションのCOMPRESSION_TYPEおよびKEEP_SOURCE_FILESで、圧縮プリファレンスを定義します。

  • COMPRESSION_TYPE — 必要な圧縮タイプを構成できます。Oracle Object Storageにロードする前にソース・データに適用する圧縮タイプを選択します。

  • KEEP_SOURCE_FILES — このKMオプションを使用して、圧縮後も元のソース・ファイルを維持します。ターゲット・ファイルを圧縮して元のファイルを維持する場合、このプロパティをTrue (デフォルト)に設定します。

    ノート:

    gzipでは、バージョン1.6以上でのみ、KEEP_SOURCE_FILESオプションがサポートされます。

書式設定

  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。使用可能な3つの圧縮タイプまたはAUTOがあります。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

拡張

  • ADD_FORMAT_PROPERTIES - このオプションでは、カスタム書式プロパティを追加できます。

    <'prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

クリーンアップ

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

SQLアンロード・オプション

  • TEMP_FILE_SCHEMA — オブジェクト記憶域へのアップロード前に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、ファイル・テクノロジの論理スキーマである必要があります。一時ファイルは、ODIエージェントが実行されているローカル・ファイル・システムに格納されます。

  • UNLOAD_DATE_FORMAT — 日付データ型に使用する出力書式を指定します。この書式は、Javaの日時書式標準に準拠しています。

  • UNLOAD_TIMESTAMP_FORMAT— 時間データ型に使用する出力書式を指定します。この書式は、Javaの時間書式標準に準拠しています。

  • CHARSET_ENCODING— 文字セットのエンコーディングに使用します。

  • FETCH_SIZE — ODIエージェントがデータ・サーバーとの1回の通信でリクエストする行(読み取るレコード)の数を指定します。

3.5.1.3.3 LKM SQL to ADWC Copy Direct

たとえば

このLKMは、Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCへデータをロードします。SQL問合せによる結果は、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data ()ファンクションを使用して、Oracle Object Storageから直接ADWCターゲット表にデータをロードします。マップされているかどうかにかかわらず、すべてのターゲット列がロードされます。ソースでの変換のみがサポートされます。TEMP_OBJECT_STORAGE_SCHEMAおよびTEMP_FILE_SCHEMA KMオプションを設定して、一時記憶域の場所を指定する必要があります。

どのIKMも必要としないため、このLKMはスタンドアロンKMとして使用できます。

OdiSqlUnloadおよびOdiObjectStorageUploadのステップは、LKM SQL to ADWC External Tableでの説明と同じです。LKM SQL to ADWC Copy Directは、オブジェクト・ストアからデータを取得し、dbms_cloud.copy_data()ファンクションを使用してそのデータをターゲットに直接ロードします。

EGIN
  dbms_cloud.copy_data(
    schema_name => 'STAR',
    table_name =>'PERSON',
    credential_name =>'ODI',
    file_uri_list =>'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/odi_16a97fd6-8a61-4303-8f83-81988222b8cb_FILTER_AP.txt',
    format => json_object(
    'type' VALUE 'CSV',
    'skipheaders' VALUE '0',
    'dateformat' VALUE 'AUTO')
 );
END;

KMは、オプションで資格証明オブジェクトを作成してオブジェクト記憶域に接続しますが、既存のものを再利用することもできます。

BEGIN  

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );

END;

ノート:

LKM SQL to ADWC Copy Directには、日時データ型を書式設定するための2つの異なるKMオプションがあります。
  • UNLOAD_DATE_FORMATは、テキスト・ファイルにSQL問合せをアンロードする際に使用します。この書式設定構文は、Javaの日時パターンに準拠しています。

  • DATE_FORMATは、ADWCにオブジェクト記憶域テキスト・ファイルをロードする際に使用します。この書式設定構文は、DATEデータ型を書式設定するためのOracleデータベース構文に準拠しています。

TIMESTAMP列にロードする場合、拡張オプションのADD_FORMAT_PROPERTIESを使用してtimestampformatプロパティを追加します。UNLOAD_DATE_FORMATDATE_FORMAT/timestampformatを同期して同一の書式設定を使用することは、それらが異なる構文を使用している場合であっても非常に重要です。

次に、ソースTIMESTAMP列からターゲットTIMESTAMP列にロードする例を示します。

UNLOAD_DATE_FORMAT = yyyy-MM-dd HH:mm:ss.SSS
ADD_FORMAT_PROPERTIES = 'timestampformat' VALUE 'YYYY-MM-DD HH24:MI:SS.FF3'

TIMESTAMP列の精度で所定の書式を格納できることも確認してください。

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME— Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL— 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST— このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • TEMP_OBJECT_STORAGE_SCHEMA— Oracle Object Storageステージング領域に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、Oracle Object Storageテクノロジの論理スキーマである必要があります。

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • ADD_COMPRESSION - ロードする前にデータを圧縮します。Oracle Object Storageにロードする前にソース・データを圧縮する場合、このプロパティをTrueに設定します。追加KMオプションのCOMPRESSION_TYPEおよびKEEP_SOURCE_FILESで、圧縮プリファレンスを定義します。

  • COMPRESSION_TYPE - 必要な圧縮タイプを構成できます。Oracle Object Storageにロードする前にソース・データに適用する圧縮タイプを選択します。

  • KEEP_SOURCE_FILES— このKMオプションを使用して、圧縮後も元のソース・ファイルを維持します。ターゲット・ファイルを圧縮して元のファイルを維持する場合、このプロパティをTrue (デフォルト)に設定します。

    ノート:

    gzipでは、バージョン1.6以上でのみ、KEEP_SOURCE_FILESオプションがサポートされます。

書式設定

  • DELIMITED_FILE_FORMAT - デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。使用可能な3つの圧縮タイプまたはAUTOがあります。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

拡張

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

ターゲット

  • CREATE_TARG_TABLE— ターゲット表を作成します。ロードする前にターゲット表を作成する場合、このオプションをTrueに設定します。

  • TRUNCATE_TARG_TABLE— ターゲット表を切り捨てます。ロードする前にターゲット表を切り捨てる場合、このKMオプションをTrueに設定します。

  • DELETE_TARG_TABLE— ターゲット表を削除できます。ロードする前にターゲット表のデータを削除する場合、このKMオプションをTrueに設定します。

クリーンアップ

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

SQLアンロード・オプション

  • TEMP_FILE_SCHEMA— オブジェクト記憶域へのアップロード前に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、ファイル・テクノロジの論理スキーマである必要があります。一時ファイルは、ODIエージェントが実行されているローカル・ファイル・システムに格納されます。

  • UNLOAD_DATE_FORMAT— 日付データ型に使用する出力書式を指定します。この書式は、Javaの日時書式標準に準拠しています。

  • UNLOAD_TIMESTAMP_FORMAT— 時間データ型に使用する出力書式を指定します。この書式は、Javaの時間書式標準に準拠しています。

  • CHARSET_ENCODING— 文字セットのエンコーディングに使用します。

  • FETCH_SIZE - ODIエージェントがデータ・サーバーとの1回の通信でリクエストする行(読み取るレコード)の数を指定します。

3.5.1.3.4 LKM File to ADWC External Table

このLKMは、Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCへデータをロードします。ソース・ファイルは、最初にOracle Object Storageステージング領域にロードされます。次に、外部表の方法を使用してオブジェクト記憶域からデータを取得します。TEMP_OBJECT_STORAGE_SCHEMA KMオプションを設定して、一時記憶域の場所を指定する必要があります。

このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。

KMは、ODIツールのOdiObjectStorageUploadを起動し、ローカル・ファイルをオブジェクト記憶域にアップロードします。

たとえば

OdiObjectStorageUpload "-TRG_LOGICAL_SCHEMA=Object Storage - SRC1" "-SRC_LOGICAL_SCHEMA=FILE_GENERIC_TMP" "-FILE_NAMES_FILTER=person_no_header.csv" "-OVERWRITE=true"

次に、KMは、一時ステージング外部表を作成し、Oracle Object Storageからデータを取得します。

BEGIN
  dbms_cloud.create_external_table(
    table_name =>'C$_0PER_EXT',
    credential_name =>'ODI',
    file_uri_list =>'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/person_no_header.csv',
    column_list => 'PID NUMBER(2,0), PNAME VARCHAR2(20)',
    format => json_object(
    'type' VALUE 'CSV',
    'skipheaders' VALUE '0',
    'dateformat' VALUE 'AUTO')
 );
END;

KMは、オプションで資格証明オブジェクトを作成してOracle Object Storageに接続しますが、既存のものを再利用することもできます。

BEGIN  
  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );
END;

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • TEMP_OBJECT_STORAGE_SCHEMA — オブジェクト記憶域ステージング領域に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、Oracle Object Storageテクノロジの論理スキーマである必要があります。

  • ADD_COMPRESSION — ロードする前にデータを圧縮します。Oracle Object Storageにロードする前にソース・データを圧縮する場合、このプロパティをTrueに設定します。追加KMオプションのCOMPRESSION_TYPEおよびKEEP_SOURCE_FILESで、圧縮プリファレンスを定義します。

  • COMPRESSION_TYPE — 必要な圧縮タイプを構成できます。Oracle Object Storageにロードする前にソース・データに適用する圧縮タイプを選択します。

  • KEEP_SOURCE_FILES — このKMオプションを使用して、圧縮後も元のソース・ファイルを維持します。ターゲット・ファイルを圧縮して元のファイルを維持する場合、このプロパティをTrue (デフォルト)に設定します。

    ノート:

    gzipでは、バージョン1.6以上でのみ、KEEP_SOURCE_FILESオプションがサポートされます。

書式設定

  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。使用可能な3つの圧縮タイプまたはAUTOがあります。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

拡張

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

クリーンアップ

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.1.3.5 LKM File to ADWC Copy

このLKMは、Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCへデータをロードします。ソース・ファイルは、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data()を使用して、Oracle Object StorageからADWCのステージング表にデータをロードします。TEMP_OBJECT_STORAGE_SCHEMA KMオプションを設定して、一時記憶域の場所を指定する必要があります。

このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

OdiObjectStorageUploadは、LKM File to ADWC External Tableと同じように起動します。

LKM File to ADWC Copyは、ADWC実行ユニットに一時ステージング表を作成し、dbms_cloud.copy_data()ファンクションを使用してそこにオブジェクト・ストアからデータを取得します。

たとえば

create table STAR.C$_0PER
(  PID NUMBER(2,0),
   PNAME VARCHAR2(20)
)
BEGIN
  dbms_cloud.copy_data(
    schema_name => 'STAR',
    table_name =>'C$_0PER',
    credential_name =>'ODI',
    file_uri_list =>'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/person_no_header.csv',
    format => json_object(
    'type' VALUE 'CSV',
    'skipheaders' VALUE '0',
    'dateformat' VALUE 'AUTO')
 );
END;

KMは、オプションで資格証明オブジェクトを作成してオブジェクト記憶域に接続しますが、既存のものを再利用することもできます。

BEGIN  

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );
END;

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • TEMP_OBJECT_STORAGE_SCHEMA — オブジェクト記憶域ステージング領域に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、Oracle Object Storageテクノロジの論理スキーマである必要があります。

  • ADD_COMPRESSION — ロードする前にデータを圧縮します。Oracle Object Storageにロードする前にソース・データを圧縮する場合、このプロパティをTrueに設定します。追加KMオプションのCOMPRESSION_TYPEおよびKEEP_SOURCE_FILESで、圧縮プリファレンスを定義します。

  • COMPRESSION_TYPE — 必要な圧縮タイプを構成できます。Oracle Object Storageにロードする前にソース・データに適用する圧縮タイプを選択します。

  • KEEP_SOURCE_FILES — このKMオプションを使用して、圧縮後も元のソース・ファイルを維持します。ターゲット・ファイルを圧縮して元のファイルを維持する場合、このプロパティをTrue (デフォルト)に設定します。

    ノート:

    gzipでは、バージョン1.6以上でのみ、KEEP_SOURCE_FILESオプションがサポートされます。

書式設定

  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。使用可能な3つの圧縮タイプまたはAUTOがあります。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

拡張

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

クリーンアップ

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.1.3.6 LKM File to ADWC Copy Direct

このKMは、Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCへデータをロードする際に役立ちます。ソース・ファイルは、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data()ファンクションを使用して、オブジェクト記憶域から直接ADWCターゲット表にデータをロードします。ソース属性は、ターゲット列名に一致する必要があります。一致する属性を持つデータ・エンティティを使用するか、オプションGENERATE_FIELD_LISTをfalseに設定してください。マッピングにかかわらず、すべてのターゲット列がロードされます。

TEMP_OBJECT_STORAGE_SCHEMA KMオプションを設定して、一時記憶域の場所を指定する必要があります。LKM File to ADWC Copy Directでは、どの変換もサポートされません。

その実装にIKMを必要としないため、このLKMはスタンドアロンKMとして使用できます。OdiObjectStorageUploadは、LKM File to ADWC External Tableと同じように起動します。LKM SQL to ADWC Copy Directは、Oracle Object Storageからデータを取得し、dbms_cloud.copy_data()ファンクションを使用してそのデータをターゲットに直接ロードします。

たとえば

BEGIN
  dbms_cloud.copy_data(
    schema_name => 'STAR',
    table_name =>'PERSON',
    credential_name =>'ODI',
    file_uri_list =>'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/person_no_header.csv',
    format => json_object(
    'type' VALUE 'CSV',
    'skipheaders' VALUE '0',
    'dateformat' VALUE 'AUTO')
 );
END;

KMは、オプションで資格証明オブジェクトを作成してOracle Object Storageに接続しますが、既存のものを再利用することもできます。

BEGIN  

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );

END;

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • TEMP_OBJECT_STORAGE_SCHEMA — オブジェクト記憶域ステージング領域に格納される一時ファイルの場所を定義する論理スキーマの名前を指定します。これは、Oracle Object Storageテクノロジの論理スキーマである必要があります。

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • ADD_COMPRESSION — ロードする前にデータを圧縮します。Oracle Object Storageにロードする前にソース・データを圧縮する場合、このプロパティをTrueに設定します。追加KMオプションのCOMPRESSION_TYPEおよびKEEP_SOURCE_FILESで、圧縮プリファレンスを定義します。

  • COMPRESSION_TYPE — 必要な圧縮タイプを構成できます。Oracle Object Storageにロードする前にソース・データに適用する圧縮タイプを選択します。

  • KEEP_SOURCE_FILES — このKMオプションを使用して、圧縮後も元のソース・ファイルを維持します。ターゲット・ファイルを圧縮して元のファイルを維持する場合、このプロパティをTrue (デフォルト)に設定します。

    ノート:

    gzipでは、バージョン1.6以上でのみ、KEEP_SOURCE_FILESオプションがサポートされます。

書式設定

  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。使用可能な3つの圧縮タイプまたはAUTOがあります。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

拡張

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

ターゲット

  • CREATE_TARG_TABLE — ターゲット表を作成します。ロードする前にターゲット表を作成する場合、このオプションをTrueに設定します。

  • TRUNCATE_TARG_TABLE — ターゲット表を切り捨てます。ロードする前にターゲット表を切り捨てる場合、このKMオプションをTrueに設定します。

  • DELETE_TARG_TABLE — ターゲット表を削除できます。ロードする前にターゲット表のデータを削除する場合、このKMオプションをTrueに設定します。

クリーンアップ

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.1.3.7 LKM Oracle to ADWC Datapump

このKMは、Oracleオンプレミス製品からOracle ADWCへデータをロードする際に役立ちます。これは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

作業

最初に、ソース表がローカルのデータポンプ・ダンプ・ファイルにエクスポートされます。エクスポート・ファイルは、TEMP_FILE_SCHEMA論理スキーマによって指定されたローカル・ディレクトリに作成されます。一意のエクスポート・ファイル名がodi_<ODI_session_id>_<mapping_node>.dmpとして生成されます。エクスポート・ログ名は、odi_<ODI_session_id>_<mapping_node>_exp.logです。次に、エクスポート・ファイルは、TEMP_OBJECT_STORAGE_SCHEMA論理スキーマで指定されたOracle Object Storageバケットにアップロードされます。これは、ADWCデータベースの一時ステージング表C$_aliasにインポートされます。インポート・ログ名は、odi_<ODI_session_id>_<mapping_node>_imp.logです。最後に、マッピングIKMにより、ステージング表がターゲットに統合されます。ターゲット実行ユニットでの変換がサポートされます。

ノート:

  • ダンプ/ログ・ファイルにアクセスするには、ODIエージェントがソース・データベースと同じホストで実行されている必要があります。

  • 現在、KMでは、Oracle Object Storageからの複数ファイルのロードはサポートされていません。そのため、FILESIZEおよびPARALLELオプションを設定することはできません。dbms_datapumpパッケージは、エクスポートとインポートに使用されます。

エクスポート・コードの例:
declare
  h1 number;
  j_status varchar2(200);
begin
  dbms_output.enable();
  h1 := dbms_datapump.open('EXPORT','SCHEMA',NULL,'ODI_EXPORT','LATEST');
  dbms_datapump.add_file(
    handle => h1,
    filename => 'odi_de73e691-2ef5-4fff-8d98-697cf8e123cf_PER_AP.dmp',
    directory => 'ODI_DIR',
    filetype => dbms_datapump.KU$_FILE_TYPE_DUMP_FILE,
    reusefile => 1);
  dbms_datapump.add_file(
    handle => h1,
    filename => 'odi_de73e691-2ef5-4fff-8d98-697cf8e123cf_PER_AP_exp.log',
    directory => 'ODI_DIR',
    filetype => dbms_datapump.KU$_FILE_TYPE_LOG_FILE);
  dbms_datapump.metadata_filter( h1, 'SCHEMA_LIST', q'|'UT_TD_D_1'|' );
  dbms_datapump.metadata_filter( h1, 'NAME_LIST', q'|'PERSON_SRC'|', 'TABLE' );
  dbms_datapump.metadata_filter( h1, 'INCLUDE_PATH_LIST', q'|'TABLE'|' );
  dbms_datapump.set_parameter(h1, 'COMPRESSION', 'METADATA_ONLY');
  dbms_datapump.set_parameter(h1, 'COMPRESSION_ALGORITHM', 'BASIC');
  dbms_datapump.start_job(h1);
  dbms_datapump.wait_for_job(h1, j_status);
  exception
    when others then
    ....
end;
インポート・コードの例:
declare
  h1 number;
  j_status varchar2(200);
begin
  h1 := dbms_datapump.open('IMPORT','FULL',NULL,'ODI_IMPORT','LATEST');
  dbms_datapump.add_file(
    handle => h1,
    filename => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/odi_de73e691-2ef5-4fff-8d98-697cf8e123cf_PER_AP.dmp',
    directory => 'ODI',
    filetype => dbms_datapump.KU$_FILE_TYPE_URIDUMP_FILE);
  dbms_datapump.add_file(
    handle => h1,
    filename => 'odi_de73e691-2ef5-4fff-8d98-697cf8e123cf_PER_AP_imp.log',
    directory => 'DATA_PUMP_DIR',
    filetype => dbms_datapump.KU$_FILE_TYPE_LOG_FILE);
  dbms_datapump.metadata_remap( h1, 'REMAP_SCHEMA', 'UT_TD_D_1', 'STAR');
  dbms_datapump.metadata_remap( h1, 'REMAP_TABLE', 'PERSON_SRC', 'C$_0PER');
  dbms_datapump.set_parameter(h1,'TABLE_EXISTS_ACTION','SKIP');
  dbms_datapump.set_parameter(h1,'PARTITION_OPTIONS','MERGE');
  dbms_datapump.metadata_transform( h1, 'SEGMENT_ATTRIBUTES', 0);  
  dbms_datapump.start_job(h1);
  dbms_datapump.wait_for_job(h1, j_status);
  dbms_cloud.put_object(
    credential_name => 'ODI',
    object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dwcsdemo/odi_bojana/odi_de73e691-2ef5-4fff-8d98-697cf8e123cf_PER_AP_imp.log',
    directory_name  => 'DATA_PUMP_DIR',
    file_name => 'odi_de73e691-2ef5-4fff-8d98-697cf8e123cf_PER_AP_imp.log');
  exception
    when others then
    ....
end;

KMオプション

このKMのオプションは次のとおりです。

ソース・エクスポート

  • TEMP_FILE_SCHEMA— Oracle Object Storageへのアップロード前に格納される一時エクスポート・ファイルの場所を定義する論理スキーマの名前を指定します。これは、ファイル・テクノロジの論理スキーマである必要があります。この場所に基づいてOracleディレクトリが作成されます。一時ファイルは、ソース・データベースからアクセス可能なファイル・システムに格納されます。

  • ORACLE_DIRECTORY_NAME— データポンプがソースにエクスポート・ファイルおよびログを格納する際に使用されるOracleディレクトリの名前を指定します。デフォルト値はODI_DIRです。

    ノート:

    ディレクトリ名に使用できるのは大文字のみです。
  • COMPRESSION — ダンプ・ファイル・セットに書き込む前に圧縮するデータを指定します。次の圧縮オプションのいずれかを指定できます。

    • ALL— エクスポート操作全体で圧縮を有効にします。このタイプの圧縮を行うには、Oracle Advanced Compressionオプションを有効にする必要があります。

    • DATA_ONLY — このオプションを選択すると、データ全体が圧縮形式でダンプ・ファイルに書き込まれます。このタイプの圧縮を行うには、Oracle Advanced Compressionオプションを有効にする必要があります。

    • METADATA_ONLY — このオプションを選択すると、メタデータ全体が圧縮形式でダンプ・ファイルに書き込まれます。これは、COMPREESSIONのデフォルト・オプションです。

    • NONE — エクスポート操作全体で圧縮を無効にします。

  • COMPRESSION_ALGORITHM— ダンプ・ファイル・データを圧縮する場合に使用する圧縮アルゴリズムを指定します。次の圧縮アルゴリズム・オプションのいずれかを指定できます。

    • BASIC — 圧縮率と速度の適度な組合せが実現し、使用されるアルゴリズムはOracle Datapumpの以前のバージョンと同じです。

    • LOW—エクスポート・スループットへの影響を最小限に抑えるため、CPUリソースが限定要因となっている環境に適しています。

    • MEDIUM—ほとんどの環境に適しています。このオプションは、圧縮率と速度の適度な組合せを実現しているBASICオプションと似ていますが、BASICアルゴリズムと比較すると異なるアルゴリズムが使用されています。

    • HIGH — ネットワーク速度が限定要因となっている、速度が遅いネットワークでダンプ・ファイルがコピーされる状況に最適です。

  • CREATE_VIEW_ON_SOURCE — ソースにビューを作成できます。変換がないか、簡易フィルタのある単一ソースが存在する場合にのみ、このプロパティをFalseに設定します。

  • CREATE_VIEW_ON_SOURCE_TEMP_SCHEMA — ソースの作業スキーマにビューを作成できます。ソースの作業スキーマにビューを作成する場合、このプロパティをTrueに設定します。

    ノート:

    • 作業スキーマ・ユーザーは、有効なビューを使用するには、ビューのSELECT文に関係するすべてのソース表に対する選択権限を持っている必要があります。Falseに設定すると、ビューは、現在接続しているユーザーのスキーマに作成されます。

    • SYSTEMスキーマは再マップできないため、Falseに設定した場合、SYSTEMとして接続することはできません。いずれの場合も制限があるため、このオプションが用意されています。

  • USE_GROUP_PARTITION_TABLE_DATA — エクスポートでパラメータDATA_OPTIONS=GROUP_PARTITION_TABLE_DATAを使用します。DATA_OPTIONSパラメータに対するGROUP_PARTITION_TABLE_DATA値は、Oracle 12.2以上のバージョンでのみ使用できます。

    ノート:

    以前のOracleバージョンでは、このオプションをFalseに設定します。

ターゲット・インポート

  • CREDENTIAL_NAME — オブジェクト記憶域に接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • TEMP_OBJECT_STORAGE_SCHEMA — 一時Oracle Object Storageの場所の論理スキーマを指定します。Oracle Object Storageステージング領域に格納される一時エクスポート・ファイルの場所を定義する論理スキーマの名前を指定します。これは、オブジェクト記憶域テクノロジの論理スキーマである必要があります。

クリーンアップ

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.1.4 ADWCへのOracle Object Storageファイルのロード

次のナレッジ・モジュールを使用して、Oracle ADWCにOracle Object Storageファイルをロードできます。

Oracle Object StorageからADWCにデータをロードする場合、ADWCに固有のテクノロジはないため、マッピングのターゲットは、Oracleテクノロジである必要があります。オブジェクト記憶域バケットは、オブジェクト記憶域の物理スキーマを表します。ヘッダーやデリミタなどの一部のプロパティは、ソース・データストアから取得されます。ユーザー名やパスワードなどの他のプロパティは、オブジェクト記憶域データ・サーバーから取得されます。変換コンポーネントを使用する場合、それらをターゲット(Oracle)実行ユニットに移動する必要があります。ソースでの変換はサポートされません。

3.5.1.4.1 LKM Object Storage to ADWC Copy

このKMは、Oracle Cloud Object StorageからOracle ADWCへデータをロードする際に役立ちます。これは、dbms_cloud.copy_data()ファンクションを使用して、ステージング表にデータをロードします。LKM Object Storage to ADWC Copyは、APノードに割り当てられます。これは、Oracle Object StorageファイルからADWC表にデータを移動する際に使用されます。これは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

たとえば

LKM Object Storage to ADWC External Tableは、一時ステージング外部表を作成し、オブジェクト・ストアからデータを取得します。

BEGIN
  dbms_cloud.create_external_table(
    table_name =>'C$_0PER_EXT',
    credential_name =>'ODI_FLEX',
    file_uri_list =>'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dwcsprod/bucket_tenant15/person.csv',
    column_list => 'PID NUMBER(2,0),
PNAME VARCHAR2(20)',
    field_list => 'PID, PNAME',
    format => json_object('type' VALUE 'CSV', 'skipheaders' VALUE '1')
 );
END;

また、オプションで資格証明オブジェクトを作成しますが、既存のものを再利用することもできます。

BEGIN  

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );
END;

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — オブジェクト記憶域に接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。値はnilまたはautoを指定できます。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES— Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    <'prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.1.4.2 LKM Object Storage to ADWC Copy Direct

このKMは、Oracle Object StorageからOracle ADWCへデータをロードする際に役立ちます。これは、dbms_cloud.copy_data ()ファンクションを使用します。IKMを必要としないため、このLKMはスタンドアロンで使用できます。これは、ターゲット表にデータを直接ロードします。ソース属性は、ターゲット列名に一致する必要があります。一致する属性を持つデータ・エンティティを使用するか、オプションGENERATE_FIELD_LIST = falseを設定してください。マップされているかどうかにかかわらず、すべてのターゲット列がロードされます。

ノート:

LKM Object Storage to ADWC Copy Directでは、どの変換もサポートされません。

LKM Object Storage to ADWC Copy Directは、APノードに割り当てられます。これは、Oracle Object StorageからADWC表にファイル/オブジェクトを移動する際に使用されます。

たとえば

LKM Object Store to ADWC Copy Directは、Oracle Object Storageからデータを取得し、dbms_cloud.copy_data()ファンクションを使用してそのデータをターゲットに直接ロードします。

BEGIN
  dbms_cloud.copy_data(
    schema_name => 'ODI',
    table_name =>'PERSON',
    credential_name =>'ODI_FLEX',
    file_uri_list =>'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dwcsprod/bucket_tenant15/person.csv',
    field_list => 'PID, PNAME',    
    format => json_object('type' VALUE 'CSV', 'skipheaders' VALUE '1')
 );
END;

また、オプションで資格証明オブジェクトを作成しますが、既存のものを再利用することもできます。

BEGIN  

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );
END;

KMオプション

このKMのオプションは次のとおりです。

  • CREATE_TARG_TABLE — ターゲット表を作成します。ロードする前にターゲット表を作成する場合、このオプションをTrueに設定します。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • TRUNCATE_TARG_TABLE — ターゲット表を切り捨てます。ロードする前にターゲット表を切り捨てる場合、このKMオプションをTrueに設定します。

  • DELETE_TARG_TABLE — ターゲット表を削除できます。ロードする前にターゲット表のデータを削除する場合、このKMオプションをTrueに設定します。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • DELIMITED_FILE_FORMAT — デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。値はnilまたはautoを指定できます。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS — ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL — 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.1.4.3 LKM Object Storage to ADWC External Table

このKMは、外部表の方法を使用してOracle Object StorageからOracle ADWCへデータをロードする際に役立ちます。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用できます。

このLKMは、APノードに割り当てられるため、Oracle Object StorageファイルをOracle ADWC表に移動できます。

たとえば —

LKM Object Storage to ADWC External Tableは、一時ステージング外部表を作成し、Oracle Object Storageからデータを取得します。

BEGIN
  dbms_cloud.create_external_table(
    table_name =>'C$_0PER_EXT',
    credential_name =>'ODI_FLEX',
    file_uri_list =>'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/dwcsprod/bucket_tenant15/person.csv',
    column_list => 'PID NUMBER(2,0),
PNAME VARCHAR2(20)',
    field_list => 'PID, PNAME',
    format => json_object('type' VALUE 'CSV', 'skipheaders' VALUE '1')
 );
END;

また、オプションで資格証明オブジェクトを作成しますが、既存のものを再利用することもできます。

BEGIN  

  dbms_cloud.create_credential(
    credential_name => 'ODI_FLEX',
    username => 'tenant15',
    password => 'xxxxxxxx'
  );

END;

KMオプション

このKMのオプションは次のとおりです。

  • CREDENTIAL_NAME — Oracle Object Storageに接続するための資格証明名です。デフォルト値はODIです。

  • CREATE_CREDENTIAL — 新しい資格証明を作成します。Falseに設定すると、ODIでは既存の資格証明が再利用されます。

  • GENERATE_FIELD_LIST — このKMオプションをFalseに設定すると、field_list句がスキップされ、ORACLE_LOADERアクセス・ドライバのデフォルト設定が適用されます。

    ノート:

    field_list句は、固定ファイル形式で必要とされるため、常に生成する必要があります。
  • DELIMITED_FILE_FORMAT— デリミタ付きファイル形式を指定して、CSV (デフォルト)またはORACLE_LOADERアクセス・ドライバで認識できる共通のデリミタ付き形式にすることができます。ソース・データストアの「ファイル形式」プロパティが「区切り」に設定されている場合にのみ、このKMオプションを使用できます。

  • COMPRESSION — ソース・ファイルの圧縮方法を指定します。値はnilまたはautoを指定できます。空の値は圧縮なしを意味し、AUTOは圧縮タイプが自動検出されることを意味します。

  • DATE_FORMAT — 特定の日付書式を設定します。デフォルト書式オプションのAUTOでは、次の書式が検索されます。

    J
    MM-DD-YYYYBC
    MM-DD-YYYY
    YYYYMMDD HHMISS
    YYMMDD HHMISS
    YYYY.DDD
    YYYY-MM-DD
  • REJECT_LIMIT — 問合せで、指定した行数が拒否された後にエラー・メッセージが表示されます。デフォルト値はゼロです。

  • CONVERSION_ERRORS — 処理変換エラーを指定します。変換エラーが原因でいずれかの行によりエラーがスローされると、関連する列がNULLとして格納されるか、行が拒否されます。

  • TRIM_SPACES — フィールドの先頭および末尾の空白を切り捨てます。Trueに設定すると、指定した空白が切り捨てられます。

  • IGNORE_BLANK_LINES — Trueに設定すると、エラーのスローなしで空白行が無視されます。

  • IGNORE MISSING COLUMNS — ソース・ファイルよりfield_listの列の方が多い場合、追加列がNULLとして格納されます。

  • TRUNCATE_COLUMNS— ファイルのデータがフィールドに対して長すぎる場合、このオプションは、行を拒否せずにフィールドの値を切り捨てます。

  • ADD_FORMAT_PROPERTIES — このオプションでは、カスタム書式プロパティを追加できます。

    '<prop1>' VALUE '<value1>', '<prop2>' VALUE '<value2>' ...という構文を使用します。

  • OVERWRITE_FIELD_LIST — このオプションでは、ODIに入力データに関する十分な情報がない場合に、ソース・ファイルのフィールド定義を再定義できます。ここで入力した詳細は、dbms_cloud.create_external_tableファンクション・コールのfield_listパラメータとして使用されます。

    詳細は、DBMS_CLOUDパッケージのドキュメントを参照してください。

  • CLEANUP_TEMPORARY_OBJECTS — 一時オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。

  • CLEANUP_CREDENTIAL— 実行が終了するたびに資格証明オブジェクトを自動的にクリーンアップする場合、このプロパティをTrueに設定します。クリーンアップは、CREATE_CREDENTIALオプションもTrueに設定されている場合にのみ発生します。

3.5.2 データの抽出

ODIでは、Oracle KMを使用してADWCからJDBC経由でデータを抽出できます。

ADWCスキーマ用データ・ストアをマッピングのソースとして使用するマッピングを設計できます。この場合、次のOracle KMを使用してJDBC経由でデータを抽出できます。

  • ADWCからデータを抽出してオンプレミスのOracle表にロードする場合

    • LKM SQL to Oracle (Built-In)

    • IKM Oracle Insert

  • ADWCからデータを抽出してオンプレミスのファイルにロードする場合

    • LKM SQL Multi-Connect

    • IKM SQL to File Append

3.6 ADWCの操作のベスト・プラクティス

この項では、ADWCテクノロジに接続されたOracle Data Integratorを操作する場合のベスト・プラクティスについて説明します。

3.6.1 Oracle順序のADWCへのキャッシュ

ディメンション表とファクト表の間で参照整合性を維持するには、ウェアハウス・ディメンションに一意のサロゲート・キーが必要です。これらのサロゲート・キーは、新しいレコードでディメンションを構成すると自動的に移入されます。Oracle順序を使用してウェアハウス・ディメンションのサロゲート・キーを移入することは、一般的な方法です。大規模なウェアハウス・ディメンションの最初のアップロード操作時に、ディメンションで使用される順序のCACHE SIZEを大きいサイズに設定する必要があります。これにより、大規模ディメンションの最初のアップロード操作が大幅に改善します。その後、増分更新操作のためにCACHE SIZEを減らすことができます。

次の例では、大規模ディメンションのためにOracle順序を作成する方法を示しています。この順序用のCACHE SIZEは、50,000の順序です。

CREATE SEQUENCE "SEQ_W_CUSTOMER_D" MINVALUE 1000 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1000 CACHE 50000 NOORDER NOCYCLE;


脚注の説明

脚注1: ODIでは、資格証明ファイル(cwallet.sso)またはパスワードで保護されたウォレット・ファイル(ewallet.p12)から接続の詳細を直接アップロードできます。