この記事は インフォマティカ Advent Calendar 2022 Day 2 の記事として書かれています。
はじめに
2022年のIICSのメジャーリリースでは合計18本の新規コネクター(プレビュー版を含む)がリリースされました。その中でも、10月のメジャーリリースで提供されたばかりのOracle Cloud Object Storageコネクタを使ってみたいと思います。
Oracle Cloud Infrastructure(OCI) のAlways Free 枠を活用して、Oracle Cloud Object StorageからAutonomous Data Warehouse にInformatica Intelligent Cloud Services(IICS)のCloud Data Integration(CDI)を使ってETLしてみます。
OCIでの環境用意
ここでは詳しく触れませんが、テスト目的ですのでObject Storageではルート直下のコンパートメントに「bucket-20200410-1245」というバケットを作成し、バケット内に「advent-calendar」というフォルダを作成しました。
同様にデータベースもルート直下のコンパートメントに「XA9LL2DQ1161QZ2Y」というAutonomous Data WarehouseタイプのAutonomous Databaseを作成しました。
IICSでのOracle Cloud Object Storageコネクタの「接続」作成
IICSでのAutonomous Databaseへの「接続」作成については、昨年インフォマティカ Advent Calendar 2021 Day 23 の記事がありますので、そちらを参照いただくとして、ここのではこの記事のメインであるOracle Cloud Object Storageコネクタの「接続」作成方法について手順を記載していきます。
まだ、英語版のオンラインマニュアルしか存在していませんがOracle Cloud Object Storage connection propertiesを参照しつつ、実際の「接続」作成画面で入力が必要な情報をOCIコンソールから取得します。実際の「接続」作成画面を見てみましょう。
接続名と説明に適切な情報を入力し、タイプのLOVから「Oracle Cloud Object Storage(Informatica)」を選択します。
Connection Sectionでの入力項目は8つですのでそれほど多くはないです。
OCIコンソールからの情報取得
今回はAuthentication TypeでSimple Authenticationを使用しますので、Config File LocationとProfile Name以外のプロパティに値をセットしていきます。
Bucket Nameに「bucket-20200410-1245」,Folder Pathに「advent-calendar」を入力し、RegionではLOVから「uk-london-1」を選択すればOKです。残りのUser, Finger Print, Tenancy, Private Key File Locationの入力について説明を進めます。これらの情報を得るためにはOCIコンソールのプロファイル(人物アイコン)をクリックしてメニュー開き、「oracleidentitycloudservice/OCIのログインユーザー名」を選択して、「ユーザーの詳細」を表示します。
※ハンバーガーマークからは、「アイデンティティとセキュリティ」-> アイデンティティ配下の「ユーザー」-> 表示されたユーザー一覧からOCIログインユーザー名を選択することで同じ画面にたどり着きます。
画面をスクロールダウンすると左側に「リソース」というメニューがリストされますので、「APIキー」をクリックします。そして、【APIキーの追加】ボタンをクリックします。
下記のようなダイアログが表示されます。デフォルトで「APIキー・ペアの生成」が選択されていますので、そのまま【秘密キーのダウンロード】ボタンをクリックします。
最後に【追加】ボタンをクリックすると、下記のようなダイアログが表示されます。これはConfigFile Authenticationで使用するためのConfigFileに記載する情報を表示しているのですが、そのままSimple Authenticationの入力情報として活用できますので、「構成ファイルのプレビュー情報」はメモ帳等にコピーしておきます。
これで残すはPrivatekey File Locationの入力のみです。
Privatekey File Location の設定
先ほど「APIキー・ペアの生成」で【秘密キーのダウンロード】をしました。ローカルのダウンロードフォルダにoracleidentitycloudservice_OCIユーザー名-MM-DD-HH-MM.pemというファイルが存在しているはずです。この秘密キーをSecure Agentにアップロードし、適切なディレクトリに配置します。
デフォルトでは$home/.ociの配置先のようなので、この例でもSecure Agentのオーナーであるinfa1ユーザのホームディレクトリ配下に「.oci」ディレクトリを新規に作成し、秘密キーをそこに配置しました。
これで必要な情報の入力は完成ですので「接続のテスト」をクリックしてOKであれば「保存」をクリックします。
正常に接続できましたので、最後にこの接続を使ってCDIのマッピングタスクを動かしてみます。
CDI マッピングタスクを動かしてみる
Oracle Object Storageに1万件の個人情報のダミーデータが入ったCSVファイルを配置しました。
血液型は「B型以外」、性別は「男」というフィルターをかけて、Autonomous Data Warehouseにロードするという単純なマッピングを動かしてみます。
ロンドン(Storage) - 日本(Secure Agent) - ロンドン(DB) というネットワーク的に非効率なテスト環境だったため、想像以上に時間がかかりましたが、無事に4653行がターゲットにロードされ、ジョブとして正常終了しました。
おわりに
2022年5月にOracle社とInformaticaは戦略的グローバル・パートナーシップを発表しています。近い将来、OCIでIICSが動くようになるのは、個人的には感慨深いものがあります。