4 Oracle Autonomous Transaction Processing
この章では、Oracle Data IntegratorでのAutonomous Transaction Processing (ATP)の使用方法について説明します。
この章の内容は次のとおりです。
概要
Oracle Autonomous Transaction Processing Cloud Serviceは、完全に管理された、事前構成済のデータベース環境です。
ハードウェアを構成または管理する必要も、ソフトウェアをインストールする必要もありません。プロビジョニング後はいつでも、可用性とパフォーマンスに影響を与えることなく、CPUコアの数または記憶域の容量をスケーリングできます。Autonomous Transaction Processingでは、データベースの作成に加えて、データベースのバックアップ、パッチ適用、アップグレード、チューニングなどのメンテナンス・タスクの実行が処理されます。
Oracle Data Integrator (ODI)では、ATPがシームレスに統合されます。ODIをATPに統合することで、ミッション・クリティカルなアプリケーションの要求を満たすように即座にスケーリングできる、自己駆動、自己保護および自己修復が可能なデータベース・サービスを取得できます。
概念
Oracle ATPの概念は、Oracle Data Integratorの概念に次のようにマップされます。1つのOracle ATPインスタンスはOracle Data Integratorの1つのデータ・サーバーに対応します。このインスタンス内で、1つのスキーマはOracle Data Integratorの1つの物理スキーマにマップされます。1つのスキーマ内の関連する一連のオブジェクトが1つのデータ・モデルに対応し、各表、ビューまたはシノニムが、その属性、列および制約とともにODIデータストアとして表示されます。
Oracle Data Integratorでは、Java Database Connectivity (JDBC)を使用してOracle ATPインスタンスに接続します。ATPへのすべての接続で、資格証明ファイルを使用して公開キーのセキュリティ資格証明を管理する必要があります。ODIユーザーは、Thin接続またはOCI接続を使用して、ATPにアクセスできます。
ナレッジ・モジュール
Oracle Data Integratorには、Oracle ATPにデータをロードするための次のナレッジ・モジュール(KM)が用意されています。KMでは、Oracle固有の機能が使用されます。Oracle ATPでは、汎用SQL KMを使用することもできます。ODIでは、Oracle ADWCとOracle ATPの両方のクラウド・サービスに、同じ最適化されたKMを使用します。
表4-1 ATPナレッジ・モジュール
ナレッジ・モジュール | 説明 |
---|---|
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およびOracle ATPへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM SQL to ADWC Copy |
Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCおよびOracle ATPへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM SQL to ADWC Copy Direct |
Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCおよびOracle ATPへデータをロードします。どのIKMも必要としないため、このLKMはスタンドアロンKMとして使用できます。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM File to ADWC External Table |
Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCおよびOracle ATPへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM File to ADWC Copy |
Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCおよびOracle ATPへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用する必要があります。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM File to ADWC Copy Direct |
Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCおよびOracle ATPへデータをロードします。その実装にIKMを必要としないため、このLKMはスタンドアロンKMとして使用できます。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM Oracle to ADWC Datapump |
Oracleオンプレミス製品からOracle ADWCおよびOracle ATPへデータをロードします。これは、Oracleまたは汎用SQL IKMと組み合せて使用できます。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM Object Storage to ADWC Copy |
Oracle Cloud Object StorageからOracle ADWCおよびOracle ATPへデータをロードします。これは、Oracleまたは汎用SQL IKMと組み合せて使用できます。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM Object Storage to ADWC Copy Direct |
Oracle Cloud Object StorageからOracle ADWCおよびOracle ATPへデータをロードします。このLKMを使用して、Oracle Object StorageからADWC表またはATP表へファイル/オブジェクトを移動できます。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
LKM Object Storage to ADWC External Table |
外部表の方法を使用して、Oracle Object StorageからOracle ADWCおよびOracle ATPへデータをロードします。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用できます。 注意: このKMは、Data Integration Platform Cloudにのみ適用されます。 |
前提条件
ATP環境に接続するための前提条件を次に示します。ATP環境に接続する前に、次の前提条件が満たされていることを確認してください。
注意:
次の前提条件は、ODI StudioとODIエージェントの両方に共通です。Walletの構成
ATPへのすべての接続で、資格証明ファイルを使用して公開キーのセキュリティ資格証明を管理する必要があります。このファイルは、認証および署名資格証明(秘密キー、証明書、SSLで必要な信頼できる証明書など)の格納に使用されます。Oracleウォレット(ewallet.p12)または資格証明zipファイル(自動ログイン・ウォレット)により、複数のドメインにわたりデータベース資格証明を管理する簡単な方法が提供されます。ウォレットを更新することでデータベース資格証明を更新できます。このとき、個々のデータ・ソース定義を変更する必要はありません。ATPに接続するには、アプリケーションからOracleウォレットにアクセスする必要があります。
ウォレットの詳細は、『Oracle Databaseセキュリティ・ガイド』のアプリケーション開発者のセキュリティの管理でアプリケーション設計におけるパスワードの保護に関する項を参照してください。
JDBCプロパティにはウォレット・ファイルまたは資格証明ファイルの場所が必要です。
-
ATPウォレットの場所からウォレット・ファイル(ewallet.p12)または資格証明zipファイル(自動ログイン・ウォレット)を取得し、ODI StudioとODIエージェントの両方からアクセスできるローカル・ディレクトリに配置します。ウォレット・ファイルのデフォルトの場所は、
<homedir>/.odi/oracledi/ewallet
です。自動ログイン・ウォレットの場合は、資格証明zipをウォレット・ファイルとしてアップロードします。
Javaセキュリティの構成
注意:
次に示すステップは、JDK1.8.0_u161以上のバージョンでは不要です。JDK_HOME\jre\lib\security
のjava.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接続を作成します。
-
Oracle Instant Clientバージョン12.2.0.1.0をダウンロードしてインストールします。手順は、http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.htmlを参照してください
-
Oracle Instant Clientをインストールしたら、次の環境変数にそのフォルダを追加します。
LD_LIBRARY_PATH: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/oracle/instantclient_12_2
-
資格証明ファイルを新しいディレクトリ(つまり、
/home/oracle/wallet
)に解凍します -
新しいウォレット・ディレクトリにナビゲートして、
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
-
-
解凍された資格証明ファイルがある場所(ディレクトリ)に、
TNS_ADMIN
を変更または設定します。たとえば、ウォレット・ファイルが/home/oracle/wallet
というディレクトリに解凍された場合、TNS_ADMIN
パラメータを次のように設定します。TNS_ADMIN=/home/oracle/wallet
OCIのエージェント構成
ODIエージェント(スタンドアロンおよびJ2EE)とATPを接続するには、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"
トポロジの設定
注意:
ATPデータ・サーバーは、Oracle Technologyの下に作成されることに注意してください。トポロジの設定には次が含まれます。
Oracleデータ・サーバーの作成
-
「定義」タブ:
データ・サーバー
-
名前: データ・サーバー定義の名前を入力します
-
インスタンス/dblink: このOracleインスタンスに使用されるTNS別名。データベース・リンクおよびSQL*Loaderの使用時に、Oracleインスタンスを識別するために使用されます。
接続
-
ユーザー/パスワード: ソース・スキーマでの選択権限、ターゲット・スキーマでの選択および挿入の権限、およびこのデータ・サーバーの下に作成されたOracle物理スキーマ内に示される作業スキーマでの選択、挿入およびオブジェクト作成の権限を持つOracleユーザー(およびユーザーのパスワード)。
-
JNDI接続: このチェック・ボックスを選択して、JNDI接続設定を構成します。「JNDI」タブに移動して、必要なフィールドに入力します。
注意:
JNDI接続フィールドは、ATPには適用されません。 -
資格証明ファイルの使用このチェック・ボックスを選択して、事前構成されたウォレット・ファイル脚注1または資格証明zipファイルから接続の詳細を直接アップロードします。前述の「JNDI接続」チェック・ボックスは無効になり、ウォレット機能に関する次のフィールドが表示されます。
注意:
ATPでは資格証明ファイルを使用する必要があることに注意してください。
資格証明詳細
注意:
このセクションは、Data Integration Platform Cloudにのみ適用されます。-
資格証明ファイル: 「資格証明ファイル」テキスト・ボックスの横にある「参照」アイコンをクリックして、接続の詳細を含む必要なウォレット・ファイルの場所を参照します。
デフォルトでは、資格証明の場所は、
<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)に含まれる接続のリストを介してのみ変更できます。
-
「保存」をクリックして、データ・サーバーの詳細を保存します
-
「テスト接続」をクリックして、確立された接続をテストします
-
-
ATPデータ・サーバー(Oracle Technologyを使用)では、JDBCがサポートされます。「JDBC」タブの次の詳細を入力します。
ODIユーザーは、Thin接続またはOCI接続を使用して、ATPにアクセスできます。
注意:
「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>
-
Oracle JDBCシン・ドライバを使用してATPインスタンスを接続するには、次のようにデータベース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>")
-
JDBC OCIを使用してATPインスタンスを接続するには、次のようにデータベース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)をそのサービス名と強制的に一致させるために使用します。
-
-
Oracle物理スキーマの作成
Oracleモデルの作成およびリバース・エンジニアリング
この項では、次の項目について説明します。
Oracleモデルのリバース・エンジニアリング
通常は、標準のJDBCリバース・エンジニアリングを使用して作業を開始することを検討してください。Oracleで標準のリバース・エンジニアリングを使用すると、表、ビュー、列および参照が取得されます。
それ以外のメタデータを取得する場合に、カスタマイズされたリバース・エンジニアリングに切り替えることを検討してください。Oracleのカスタマイズされたリバース・エンジニアリングでは、表およびビューの構造(列、索引、チェック制約、シノニムおよび参照)が取得されます。
ATP用Oracleモデルで標準のリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。
RKMを使用してATP用Oracleモデルでカスタマイズされたリバース・エンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』のモデルのリバース・エンジニアリングに関する項の説明に従って、通常の手順を使用します。
この項では、Oracleテクノロジ固有のフィールドのみについて説明します。Oracleモデルの「リバース・エンジニアリング」タブで、「KM — RKM Oracle.<project name>
」を選択します。
マッピングの設計
Oracle ATPをマッピングのソースまたはターゲットとして使用できます。ATP用のOracleテクノロジに基づくETL形式のマッピングを作成することもできます。この項に示す推奨事項は、Oracle Databaseサーバーに関連する様々な状況でのKMの選択に役立ちます。
データのロード
マッピングのソースまたはターゲットとしてATPを使用できます。Oracleと別のタイプのデータ・サーバー間でデータをロードする目的で、ナレッジ・モジュールをロードするためのマッピングで使用されるLKMの選択により、マッピングの動作とパフォーマンスが決定されます。
次のKMには、Oracleデータベースからターゲット・データベース(ATP)へデータをロードするための最適化されたメソッドが実装されています。主要な目的は、ATPにデータをロードすることです。これらのKM以外に、汎用SQL KMまたは関係するもう一方のテクノロジ固有のKMも使用できます。
Oracle KMを使用したデータのロード
ADWCまたはATP Oracleデータストアをターゲットにするマッピングを設計することで、次のOracle KMを使用してOracle表にデータをロードできます。マッピングに使用できるKMは次のとおりです。
-
LKM SQL to Oracle (Built-In)
-
IKM Oracle Insert
-
IKM Oracle Update
-
IKM Oracle Merge
-
IKM Oracle Multi-Insert
SQL*Loader KMを使用したデータのロード
SQL*Loader KMを使用してADWCまたはATP用のOracle表にデータをロードすることもできます。LKM File to Oracle (SQLLDR)では、ファイルからOracle表にデータがロードされます。ADWCまたはATP用Oracleスキーマのデータ・ストアをマッピングのターゲットとして使用するマッピングを設計できます。この場合、データはSQL*Loader KMを使用してロードされます。
SQL*Loader KMの接続設定
tnsnames.oraおよびsqlnet.oraのプロパティがウォレット・ファイルを使用するように構成されていることを確認します。
次に例を示します。
-
sqlnet.ora :
WALLET_LOCATION=(SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="<wallet_directory>"))) SSL_SERVER_DN_MATCH=yes
-
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セキュリティ・ガイド』の外部パスワード・ストアを使用したパスワードの保護に関する項を参照してください。
ATPへのデータの直接ロード
注意:
このセクションは、Data Integration Platform Cloudにのみ適用されます。次のナレッジ・モジュールを使用して、Oracle ATPにデータを直接ロードできます。ODIでは、Oracle ADWCとOracle ATPの両方のクラウド・サービスに、同じ最適化されたKMを使用します。
ATPにデータを直接ロードするには、マッピングのソースをファイル/HDFSまたはSQLテクノロジ(Oracleなど)に設定します。マッピングのターゲットは、Oracleテクノロジ(具体的にはATPデータベース)にする必要があります。オブジェクト記憶域ステージング領域は、一時的にファイルを格納するために使用され、KMオプションTEMP_OBJECT_STORAGE_SCHEMA
(論理スキーマ)を設定することで定義されます。ユーザー/パスワードなどの一部のプロパティは、TEMP_OBJECT_STORAGE_SCHEMA
論理スキーマにアタッチされたOracle Object Storageデータ・サーバーから取得されます。SQLソースの場合に一時ローカル・ファイルを作成する必要がある場合、TEMP_FILE_SCHEMA
KMオプションとしてその場所を定義する必要があります。変換コンポーネントを使用する場合、それらはソース実行ユニット(SQLがソースの場合)またはターゲットATP実行ユニット(あるいはその両方)に含めることができます。ソースとしてのファイルでは、ソース変換がサポートされません。直接コピーKMでは、ターゲットでの変換がサポートされません。
LKM SQL to ADWC External Table
このLKMは、Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。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オプションがあります。-
UNLOAD_DATE_FORMAT
- テキスト・ファイルにSQL問合せをアンロードする際にこのKMオプションを使用します。この書式設定構文は、Javaの日時パターンに準拠しています。 -
DATE_FORMAT
- ADWCまたはATPにオブジェクト記憶域テキスト・ファイルをロードする際にこのKMオプションを使用します。この書式設定構文は、DATEデータ型を書式設定するためのOracleデータベース構文に準拠しています。
TIMESTAMP
列にロードする場合、拡張オプションのADD_FORMAT_PROPERTIES
を使用してタイムスタンプ形式プロパティを追加します。UNLOAD_DATE_FORMAT
とDATE_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のオプションは次のとおりです。
-
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回の通信でリクエストする行(読み取るレコード)の数を指定します。
LKM SQL to ADWC Copy
このLKMは、Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。SQL問合せによる結果は、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data ()を使用して、Oracle Object StorageからADWCまたはATPのステージング表にデータをロードします。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またはATPにオブジェクト記憶域テキスト・ファイルをロードする際にこのKMオプションを使用します。この書式設定構文は、DATEデータ型を書式設定するためのOracleデータベース構文に準拠しています。
TIMESTAMP列にロードする場合、拡張オプションのADD_FORMAT_PROPERTIES
を使用してtimestampformatプロパティを追加します。UNLOAD_DATE_FORMAT
とDATE_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のオプションは次のとおりです。
-
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回の通信でリクエストする行(読み取るレコード)の数を指定します。
LKM SQL to ADWC Copy Direct
このLKMは、Oracle Object Storageを中間ステージとして使用して、SQLソースからOracle ADWCまたはOracle ATPへデータをロードします。SQL問合せによる結果は、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data ()ファンクションを使用して、Oracle Object Storageから直接ADWCターゲット表またはOracle ATPターゲット表にデータをロードします。マップされているかどうかにかかわらず、すべてのターゲット列がロードされます。ソースでの変換のみがサポートされます。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()ファンクションを使用してそのデータをターゲットに直接ロードします。
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/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またはATPにオブジェクト記憶域テキスト・ファイルをロードする際に使用します。この書式設定構文は、DATEデータ型を書式設定するためのOracleデータベース構文に準拠しています。
TIMESTAMP
列にロードする場合、拡張オプションのADD_FORMAT_PROPERTIES
を使用してtimestampformat
プロパティを追加します。UNLOAD_DATE_FORMAT
とDATE_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のオプションは次のとおりです。
-
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回の通信でリクエストする行(読み取るレコード)の数を指定します。
LKM File to ADWC External Table
このLKMは、Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCまたはOracle ATPへデータをロードします。ソース・ファイルは、最初に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に設定されている場合にのみ発生します。
LKM File to ADWC Copy
このLKMは、Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCまたはOracle ATPへデータをロードします。ソース・ファイルは、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data()
を使用して、Oracle Object StorageからADWCまたはATPのステージング表にデータをロードします。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に設定されている場合にのみ発生します。
LKM File to ADWC Copy Direct
このKMは、Oracle Object Storageを中間ステージとして使用して、ローカルまたはHDFSファイル・ソースからOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。ソース・ファイルは、最初にOracle Object Storageステージング領域にロードされます。次に、dbms_cloud.copy_data()
ファンクションを使用して、オブジェクト記憶域から直接ADWCターゲット表またはATPターゲット表にデータをロードします。ソース属性は、ターゲット列名に一致する必要があります。一致する属性を持つデータ・エンティティを使用するか、オプション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に設定されている場合にのみ発生します。
LKM Oracle to ADWC Datapump
このKMは、Oracleオンプレミス製品からOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。これは、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データベースまたはATPデータベースの一時ステージング表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に設定されている場合にのみ発生します。
ATPへのOracle Object Storageファイルのロード
注意:
このセクションは、Data Integration Platform Cloudにのみ適用されます。次のナレッジ・モジュールを使用して、Oracle ATPにOracle Object Storageファイルをロードできます。
Oracle Object StorageからATPにデータをロードする場合、ATPに固有のテクノロジはないため、マッピングのターゲットは、Oracleテクノロジである必要があります。オブジェクト記憶域バケットは、オブジェクト記憶域の物理スキーマを表します。ヘッダーやデリミタなどの一部のプロパティは、ソース・データストアから取得されます。ユーザー名やパスワードなどの他のプロパティは、オブジェクト記憶域データ・サーバーから取得されます。変換コンポーネントを使用する場合、それらをターゲット(Oracle)実行ユニットに移動する必要があります。ソースでの変換はサポートされません。
LKM Object Storage to ADWC Copy
このKMは、Oracle Cloud Object StorageからOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。これは、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に設定されている場合にのみ発生します。
LKM Object Storage to ADWC Copy Direct
このKMは、Oracle Object StorageからOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。これは、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表またはATP表にファイル/オブジェクトを移動する際に使用されます。
例
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に設定されている場合にのみ発生します。
LKM Object Storage to ADWC External Table
このKMは、外部表の方法を使用してOracle Object StorageからOracle ADWCまたはOracle ATPへデータをロードする際に役立ちます。このLKMは、Oracleまたは汎用SQL IKMと組み合せて使用できます。
このLKMは、APノードに割り当てられるため、Oracle Object StorageファイルをOracle ADWC表またはATP表に移動できます。
例 -
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に設定されている場合にのみ発生します。
データの抽出
ODIでは、Oracle KMを使用してADWCまたはATPからJDBC経由でデータを抽出できます。
ADWCまたはATPスキーマ用データ・ストアをマッピングのソースとして使用するマッピングを設計できます。この場合、次のOracle KMを使用してJDBC経由でデータを抽出できます。
-
ADWCまたはATPからデータを抽出してオンプレミスのOracle表にロードする場合
-
LKM SQL to Oracle (Built-In)
-
IKM Oracle Insert
-
-
ADWCまたはATPからデータを抽出してオンプレミスのファイルにロードする場合
-
LKM SQL Multi-Connect
-
IKM SQL to File Append
-
ATPの操作のベスト・プラクティス
この項では、ATPテクノロジに接続されたOracle Data Integratorを操作する場合のベスト・プラクティスについて説明します。
Oracle順序のATPへのキャッシュ
ディメンション表とファクト表の間で参照整合性を維持するには、ウェアハウス・ディメンションに一意のサロゲート・キーが必要です。これらのサロゲート・キーは、新しいレコードでディメンションを構成すると自動的に移入されます。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)から接続の詳細を直接アップロードできます。