12.5 データのフィード
ライブ表フィードは、オンデマンドで、スケジュールに従って、または通知の結果として実行できます。
ライブ表フィードは、データベース内の表へのデータのロードを自動化します。ファイルはオブジェクト・ストレージに表示されるときに自動的にロードされ、ライブ表フィード・システムではファイルが1回のみロードされます。ロードは、手動で、スケジュールによって、またはオブジェクト・ストレージから直接配信された通知によっても実行できます。
バケットには、AVRO、CSV、JSON、GeoJSON、Parquet、ORC、デリミタ付きTXTの形式のファイルを含めることができます。すべてのファイルに同じ列シグネチャが必要です。
「ライブ・フィード」ページについて
「データベース・アクション」の「データ・ロード」ダッシュボード・ページで、「データのフィード」を選択して「ライブ・フィード」ページを表示します。このページでは、次の操作が可能です。
ライブ表フィードのクラウド・ストレージ接続の管理
ライブ表フィードを作成する前に、使用するクラウド・ストアへの接続を確立する必要があります:
- 「データ・ロード」メニューの「接続」をクリックします。手順は、「接続の管理」を参照してください。
ライブ表フィード・オブジェクトの作成
-
「ライブ・フィード」ページで、+「ライブ表フィードの作成」ボタンをクリックして、「ライブ・フィードの設定」ペインを表示します。「データ・ソース」タブに次のように情報を入力します:
-
クラウド・ストアの場所: ドロップダウンから「クラウド・ストアの場所」を選択します。データのフィードに使用するファイルが含まれるバケットのクラウド接続を選択します。
「標準」モードでは、次のオプションが表示されます:
- フォルダ:
オブジェクト・ストアへのデータのフィードに使用するファイルを含むフォルダを選択します。「バケット全体」を選択して、バケット内のすべてのファイルを表にロードします。フォルダは、フォルダまたはディレクトリの作成方法とファイルの格納方法に基づいて、ドロップダウンにリストおよび編成されます。たとえば、sales1.csvおよびsales2.csvファイルを格納するsalesフォルダを作成できます。
- 拡張子:
拡張子に一致するバケット内のファイルのみにライブ表フィードを制限する拡張子を入力します。たとえば、CSVファイルのみにファイルを制限するには、「CSV」を選択します。
「拡張」モードでは、次のオプションが表示されます:
-
オブジェクト・フィルタ(glob): ファイルのglobを入力して、ライブ表フィードを、globに一致するバケット内のファイルのみに制限します。たとえば、CSVファイルのみにファイルを制限するには、*.CSVと入力します。
- 「ライブ・フィード・ファイルのプレビュー」セクションに、前のステップで選択したファイルのプレビューが表示されます。
「次」をクリックして、「表の設定」タブに進みます。
「オプション」フィールドで、使用可能な2つのオプションのいずれかを選択します:-
表のロード: このオプションは、ターゲット表にフィードを追加します。表示するファイルごとに新しい行が表に追加されます。
-
表にマージ: このオプションは、ターゲット表にライブ・フィード・データをマージします。行がすでに存在し、ロードされたキーが新しく追加されたフィードと一致する場合は、「マッピング」セクションの「マージ・キー」をクリックします。これにより、新しい行の挿入が回避されます。
-
コレクションのロード: このオプションを使用して、JSONファイルを介してライブフィードを定義できます。このオプションを選択すると、「マッピング」セクションおよび「式の追加」セクションは表示されません。後で抽出できるJSONコレクションにソース・データがロードされます。
ターゲット表名: デフォルト名を受け入れるか、別の名前を入力します。これは、ライブ・フィードからのデータがAutonomous Databaseインスタンスにロードされるターゲット表の名前です。表が存在しない場合、ライブ・フィードは正しい列を推測しようとします。ライブ・フィードをロードする表を事前に作成できます。これはより高い精度のためにあります。
「表の設定」タブでは、ソース・データの解釈、プレビューおよび処理の方法を制御するオプションを指定します。これらのオプションは、ソース・データのタイプによって異なります。- エンコーディング: リストから文字エンコーディング・タイプを選択します。このオプションは、リンクされたファイルがプレーン・テキスト形式(CSV、TSVまたはTXT)である場合に使用できます。デフォルトのエンコーディング・タイプはUTF-8です。
- テキスト囲み: テキストを囲む文字として、「"」 (二重引用符)、「'」 (一重引用符)または「なし」を選択します。このオプションは、選択したファイルがプレーン・テキスト形式(CSV、TSVまたはTXT)である場合にのみ表示されます。
- フィールド・デリミタ: ソース内の列を区切るために使用するデリミタ文字を選択します。たとえば、ソース・ファイルで列の区切りにセミコロンを使用する場合は、このリストから「セミコロン」 を選択します。デフォルトは、「カンマ」です。このオプションは、選択したファイルがプレーン・テキスト形式(CSV、TSVまたはTXT)である場合にのみ表示されます。
- 行でデータの処理を開始: ソース・データをターゲット外部表にリンクするときにスキップする行数を指定します:
「ソース列名」(次を参照)で「列ヘッダー行」オプションを選択し、「行でデータの処理を開始」フィールドに0より大きい数値を入力した場合、最初の行より後のその行数がターゲットにリンクされません。
「ソース列名」で「列ヘッダー行」オプションの選択を解除し、「行でデータの処理を開始」フィールドに0より大きい数値を入力した場合、最初の行を含むその行数がターゲットにリンクされません。
列ヘッダー行: ターゲット表でソース表の列名を使用するには、「列ヘッダー行」チェック・ボックスを選択します。
このオプションを選択すると、ファイルの最初の行が列名として処理されます。下の「マッピング」 セクションの行には、これらの名前(および変更しないかぎり既存のデータ型)が入力されています。
このオプションの選択を解除すると、最初の行はデータとして処理されます。列名を手動で指定するには、「マッピング」 セクションに各ターゲット列の名前を入力します。(データ型も入力する必要があります。)
無効な数値列の値をnull値に変換するには、「無効なデータをNULLに変換」チェック・ボックスを選択します。
データ値に改行を含む: データ・フィールドに改行文字がある場合、または現在の行の先頭に戻る場合は、このオプションを選択します。このオプションを選択すると、ロードの処理にかかる時間が長くなります。データのロード時にこのオプションを選択しない場合、フィールドの改行を含む行は拒否されます。「ジョブ・レポート」パネルで否認された行を表示できます。
- 「マッピング」セクションでの表の設定の編集または更新: このペインでは、ソース列とターゲット列のマッピングが表示されます。
「マッピング」表の内容は、「表」セクションで選択した処理オプションと、「プロパティ」セクションで設定したプロパティに応じて変わります。
「列」または「式」をフィルタで除外できる「クイック・フィルタ」フィールドを使用して、マッピング表の結果をフィルタできます。
「式の追加」を選択して、ソース・データに対して「センチメント分析」、「キー・フレーズの抽出」、「言語の検出」または「テキスト翻訳」を実行します。詳細は、「Data StudioでのOCI言語サービス機能の使用」を参照してください。
- ターゲット表に追加する列の行の先頭の「含む」チェック・ボックスを選択します。
- ターゲット列名、列タイプ、精度、スケール、デフォルト、主キー、Null可能などの列属性の値を選択または入力します。
- 提案されたデータ型を確認し、必要に応じて、ターゲット・セルにデータ型を直接入力して変更する必要があります。
前の画面で行った選択に基づいて生成されたマッピング表コードを確認します。
行がすでに存在し、ロードされたキーが新しく追加されたフィードと一致する場合は、「マッピング」セクションの「マージ・キー」をクリックします。これにより、新しい行の挿入が回避されます。このオプションは、「表にマージ」オプションを選択すると表示されます。
「次」をクリックして、「プレビュー」タブに進みます。
-
「プレビュー」ペインには、表に加えた変更が表示されます。
- 「次」をクリックして、「ライブ・フィードの設定」タブに進みます。
「ライブ・フィードの設定」タブで、次のフィールド値を指定します:
-
ライブ表フィード名: デフォルト名を受け入れるか、別の名前を入力してこのライブ表フィードを識別します。
-
通知に対して有効: Oracle Cloud Infrastructureの通知に基づいてデータ・ソース内の新規または変更済のデータがロードされるようにする場合に、このオプションを選択します。このオプションを選択すると、スケジュールに従ってポーリングが開始される場合(つまり、ライブ表フィードの「スケジュール済」オプションを選択した場合)に発生する可能性のある遅延を回避できます。
「通知に対して有効」オプションを選択した場合、次も実行する必要があります:
- 通知を発行するためのオブジェクト・ストア・バケットの構成
- 通知サービス・サブスクリプション・トピックの作成
- イベント・サービス・ルールの作成
- 通知URLのコピー
- 通知サービス・サブスクリプションの作成
- 通知が許可されていることの確認
詳細な手順は、「通知ベースのライブ表フィードの作成」を参照してください。
- スケジューリングに対して有効化: ライブ表フィード・オブジェクトを実行する(データ・ソースを定期的にポーリングする)ためのスケジュールを設定する場合に、このオプションを選択します:
-
時間間隔フィールドに数値を入力し、新規または変更済のファイルについてバケットをポーリングする時間タイプと曜日を選択します。たとえば、月曜日、水曜日および金曜日に2時間ごとにポーリングするには、
2
と入力し、「時間」を選択します。「平日」ドロップダウンから「すべての日」、「月曜から金曜」、「日曜から木曜」または「カスタム」を選択できます。「カスタム」フィールドを使用すると、適切なフィールドで「月曜日」、「火曜日」、「水曜日」、「木曜日」および「金曜日」を選択できます。 -
開始日と終了日を、開始時刻と終了時刻と一緒に選択します。開始日を選択しない場合、現在の日時が開始日として使用されます。終了日はオプションです。ただし、終了日がないと、ライブ・フィードはポーリングを継続します。
-
ドロップダウンからコンシューマ・グループ(低、中および高)を選択します。
-
- 「作成」をクリックして、ライブ表フィード・オブジェクトを作成します。
コードの表示: ライブ表フィードの作成ウィザードと同等のPL/SQLコードを表示するには、このオプションを選択します。このPL/SQLコードをワークシートにコピーして実行すると、ライブ表フィードの作成ウィザードで「作成」をクリックしたときと同じアクションを実行できます。
ライブ表フィード・オブジェクトのリスト、フィルタおよびソート
「ライブ・フィード」ページを開くと、既存のライブ表フィード・オブジェクトがページにカードとして表示されます。これらはLIVE_TABLE_FEEDエンティティとして識別されます。
ライブ表フィード・オブジェクトをフィルタするには:
-
ページ上部の検索フィールドをクリックして、フィルタ・オプションを表示します。デフォルトでは、現在のユーザーのスキーマからライブ表フィード・オブジェクトが表示されます。検索フィールドに入力するとすぐに、入力した文字を含む値が返されます。検索ボックスからコンテンツを削除し、検索ボックスの横に表示されるクロス・アイコンをクリックすることで、フィルタを削除できます。
-
他のスキーマのオブジェクトを含めるには、「スキーマ」の下の検索フィールドの横にあるドロップダウンを選択します。フィルタ・リストからスキーマを削除するには、その名前の横にあるボックスの選択を解除します。
- 使用可能なすべてのスキーマのオブジェクトを表示するには、「スキーマ」ドロップダウンから「すべて」を選択します。
ライブ表フィード・オブジェクトをソートするには
-
ページの右上にある「ソート基準」ボタンをクリックします。
- ソート・オプションを選択します。昇順にソートするには、上矢印のアイコンをクリックします。降順にソートするには、下矢印のアイコンをクリックします。
ライブ表フィード・オブジェクトの検索および表示
選択したスキーマで使用可能なライブ表フィード・エンティティを検索するには、ページ上部の検索フィールドに値を入力し、[Enter]を押します。名前に検索フィールドの文字が含まれるエンティティのみが表示されます。検索フィールドをクリアするには、検索フィールドの「検索結果をクリア」(X)アイコンをクリックします。
選択したフィルタからスキーマまたはソート値を削除するには、フィルタ・パネルでスキーマまたはソート値の選択を解除するか、ライブ表フィード・オブジェクトの表示の上にあるスキーマまたはソート値の「フィルタの削除」(X)アイコンをクリックします。フィルタ・パネルを閉じるには、パネルの「フィルタ・パネルの非表示」(X)アイコンをクリックします。
ライブ表フィードの表示をリフレッシュするには、ページ上部の「リフレッシュ」アイコンをクリックします。
ライブ表フィード・オブジェクトの編集
- 「ライブ・フィード」ページで、詳細を編集するライブ表フィードのカードを見つけます。
- カードの「アクション」アイコン(3つのドット)をクリックして、「ライブ表フィードの編集」を選択します。次のオプションを編集できます:
- 「データ・ソース」タブに次のように情報を入力します:
-
クラウド・ストアの場所: ドロップダウンから「クラウド・ストアの場所」を選択します。データのフィードに使用するファイルが含まれるバケットのクラウド接続を選択します。
-
「標準」モードでは、次のオプションが表示されます:
- フォルダ:
オブジェクト・ストアへのデータのフィードに使用するファイルを含むフォルダを選択します。「バケット全体」を選択して、すべてのファイルをバケットにアップロードします。フォルダは、フォルダまたはディレクトリの作成方法とファイルの格納方法に基づいて、ドロップダウンにリストおよび編成されます。たとえば、sales1.csvおよびsales2.csvファイルを格納するsalesフォルダを作成できます。
- 拡張子:
拡張子に一致するバケット内のファイルのみにライブ表フィードを制限する拡張子を入力します。たとえば、CSVファイルのみにファイルを制限するには、「CSV」を選択します。
「拡張」モードでは、次のオプションが表示されます:
-
オブジェクト・フィルタ(glob): ファイルのglobを入力して、ライブ表フィードを、globに一致するバケット内のファイルのみに制限します。たとえば、CSVファイルのみにファイルを制限するには、*.CSVと入力します。
-
-
「ライブ・フィードの設定」タブで、次のフィールドを編集します:
-
通知に対して有効: Oracle Cloud Infrastructureの通知に基づいてデータ・ソース内の新規または変更済のデータがロードされるようにする場合に、このオプションを選択します。このオプションを選択すると、スケジュール(つまり、ライブ表フィードの「スケジュール済」オプション)に従ってポーリングが開始される場合に発生する可能性のある遅延を回避できます。
「通知に対して有効」オプションを選択した場合、次も実行する必要があります:
- ライブ表フィードの通知URLのコピー
- 通知を発行するためのクラウド・ストアの構成
- ライブ表フィードに使用されるエンドポイントにイベントをルーティングするためのOracle Cloud Infrastructureの構成。
- ルールの作成。
- サブスクリプションの作成。
- ライブ・フィード・サービスで通知が許可されていることの確認。
詳細な手順は、「通知ベースのライブ表フィードの作成」を参照してください。
- スケジュール済: ライブ表フィード・オブジェクトを実行する(データ・ソースを定期的にポーリングする)ためのスケジュールを設定する場合に、このオプションを選択します:
-
時間間隔フィールドに数値を入力し、新規または変更済のファイルについてバケットをポーリングする時間タイプと曜日を選択します。たとえば、月曜日、水曜日および金曜日に2時間ごとにポーリングするには、
2
と入力し、「時間」を選択します。「平日」ドロップダウンから「すべての日」、「月曜から金曜」、「日曜から木曜」または「カスタム」を選択できます。「カスタム」フィールドを使用すると、適切なフィールドで「月曜日」、「火曜日」、「水曜日」、「木曜日」および「金曜日」を選択できます。 -
開始日と終了日を、開始時刻と終了時刻と一緒に選択します。
-
- 「保存」をクリックします。
ライブ表フィードの実行
ライブ表フィードは、オンデマンドで、スケジュールに従って、または通知の結果として実行できます。
ライブ表フィードをオンデマンドで実行するには:
- 「ライブ・フィード」ページで、実行するライブ表フィードのカードを見つけます。
- カードの「アクション」アイコン(3つのドット)をクリックして、「ライブ表フィードの即時実行(1回)」を選択します。
ライブ表フィードをスケジュールに従って実行するには:
ライブ表フィードを実行するスケジュールは、「ライブ表フィードの作成」ペイン(新しい表フィードの作成時)または「ライブ表フィードの編集」ペイン(既存の表フィードの編集時)で設定できます。「ライブ表フィード・オブジェクトの作成」または「ライブ表フィード・オブジェクトの編集」を参照してください。
ライブ表フィードを通知の結果として実行するには:
「通知ベースのライブ表フィードの作成」を参照してください。
「スケジュール済」チェック・ボックスを選択してスケジュール・オプションを表示し、必要なオプションを選択してスケジュールを設定します。
ライブ表フィードの実行の詳細を表示するには:
- 「ライブ・フィード」ページで、実行の詳細を確認するライブ表フィードのカードを見つけます。
- カードの「アクション」アイコン(3つのドット)をクリックして、「ライブ表フィードの実行の詳細」を選択します。
「ライブ表フィードの実行の詳細」ペインの「オブジェクト」タブには、ジョブに関する情報(実行の発生日時、実行に関連するオブジェクト、表の所有者、表名、ライブ・フィードのステータス、ロードされた行と拒否された行など)が表示されます。イベント・タイプなどの詳細を表示するには、「すべて」タブをクリックします。
ライブ表フィードの削除
- 「ライブ・フィード」ページで、削除するライブ表フィード・ジョブのカードを見つけます。
- カードの「アクション」アイコン(3つのドット)をクリックして、「ライブ表フィードの削除」を選択します。
12.5.1 通知ベースのライブ表フィードの作成
Oracle Cloud Infrastructureの通知に基づいて、ライブ表フィードを介してデータをロードできます。
「データのフィード」の説明に従って、ライブ表フィードをオンデマンドで、またはスケジュールに従って実行できることに加え、通知の結果としてフィードを実行することもできます。ソース・バケット内のデータが変更されると、表フィードの実行をトリガーする通知が送信されます。通知ベースのライブ表フィードを使用すると、オンデマンドまたはスケジュールによるライブ表フィード・ジョブの実行で発生する可能性のある遅延を回避できます。
ノート:
-
通知ベースのライブ表フィードは、Oracle Cloud Infrastructure Free Tierでは使用できません。この機能を使用するには、アカウントに対する適切な権限を持つ有料テナンシにいる必要があります。
-
通知ベースのライブ表フィードは、プライベート・エンドポイントを使用して構成されたOracle Autonomous Data Warehouseデータベース(ADW)では使用できません。
通知ベースのライブ表フィードを作成するには:
- ステップ1: 通知を発行するためのオブジェクト・ストア・バケットの構成
- ステップ2: 通知サービス・サブスクリプション・トピックの作成
- ステップ3: イベント・サービス・ルールの作成
- ステップ4: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー
- ステップ5: 通知サービス・サブスクリプションの作成
- ステップ6: エンドポイントが通知を受信できることの確認
ヒント:
これらのステップを完了するには、Oracle Cloud InfrastructureコンソールのページとOracle Database Actionsのページを切り替えます。一方のブラウザ・ページまたはタブでクラウド・コンソールを開き、他方でDatabase Actionsを開くと、簡単に行き来できるので便利です。
ステップ1: 通知を発行するためのオブジェクト・ストア・バケットの構成
場所: Oracle Cloud Infrastructureコンソール: 「オブジェクト・ストレージとアーカイブ・ストレージ」 - 「バケット」ページ
データが変更されたときに通知が発行されるように、ソース・データが含まれるバケットを構成します。このオプションは、バケットの作成時に設定することも、既存のバケットで設定することもできます。
- クラウド・コンソールのナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージとアーカイブ・ストレージ」で、「バケット」をクリックします。
-
新しいバケットを作成する場合:
- 「バケット」ページで、「バケットの作成」ボタンをクリックして、「バケットの管理」の説明に従って新しいバケットを作成します。「バケットの作成」ウィザードで、新しいバケットの他のオプションとともに、「オブジェクト・イベントの出力」オプションを選択します。
- 「作成」をクリックします。
既存のバケットを使用している場合:
- 「バケット」ページで、「バケットの管理」の説明に従って、使用するバケットの名前をクリックします。
- 「バケットの詳細」ページで、「オブジェクト・イベントの出力」の横にある「編集」リンクをクリックします。
- 「オブジェクト・イベントの出力」チェック・ボックスを選択し、「変更の保存」をクリックします。
ステップ2: 通知サービス・サブスクリプション・トピックの作成
場所: Oracle Cloud Infrastructureコンソール: 「通知」 - 「トピック」ページ
- クラウド・コンソールのナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
- 「トピックの作成」をクリックし、名前およびオプションの説明を入力して、「作成」をクリックします。
ステップ3: イベント・サービス・ルールの作成
場所: Oracle Cloud Infrastructureコンソール: 「イベント」 - 「ルール」ページ
- クラウド・コンソールのナビゲーション・メニューを開き、「監視および管理」をクリックします。「イベント・サービス」で、「ルール」をクリックします。
- 「ルールの作成」をクリックし、「イベントのルールの管理」の説明に従って「ルールの作成」ページに入力します。
- 「ルール条件」で、次を選択します:
- 条件: イベント・タイプ
- サービス名: オブジェクト・ストレージ
- イベント・タイプ: オブジェクト - 作成
- 「アクション」で、次を選択します:
- アクション・タイプ: 通知
- 通知コンパートメント: 通知に使用するコンパートメントを選択します。
- トピック: 「ステップ2: 通知サービス・サブスクリプション・トピックの作成」で、前に作成したトピックの名前を選択します。
- 「ルール条件」で、次を選択します:
- 「ルールの作成」をクリックします。
ステップ4: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー
場所: Database Actions: 「ライブ・フィード」ページ
通知を使用するように、新規または既存のライブ表フィードを構成できます:
- 「データのフィード」の説明に従って、Database Actionsの「ライブ・フィード」ページに移動します。
- 「ライブ表フィード・オブジェクトの作成」または「ライブ表フィード・オブジェクトの編集」の説明に従って、ライブ表フィード・オブジェクトを作成または編集します。「通知に対して有効」オプションを選択します
- 「作成」または「保存」をクリックします。
- ライブ・フィードのカードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「確認URLを表示」を選択します。
- 通知URLダイアログ・ボックスで、「コピー」アイコンをクリックして、URLをクリップボードにコピーします。後で取得できるように、一時ファイルにコピーすることもできます。このURLは、次のステップ(「ステップ5: 通知サービス・サブスクリプションの作成」)で使用します。
ステップ5: 通知サービス・サブスクリプションの作成
場所: Oracle Cloud Infrastructureコンソール: 「通知」 - 「サブスクリプション」ページ
- Oracle Cloud Infrastructureコンソールに戻ります。ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
- 「通知」ページで、ページの左側にある「サブスクリプション」タブをクリックすると、ステータスは「アクティブ」になります。
- 「サブスクリプションの作成」をクリックし、「サブスクリプションの作成」ページに入力します:
- サブスクリプション・トピック: 「ステップ2: 通知サービス・サブスクリプション・トピックの作成」で作成したサブスクリプション・トピックを選択します。
- プロトコル: HTTPS (カスタムURL)
- URL: 「ステップ4: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー」でコピーしたURLを貼り付けます。
- 「作成」をクリックします。サブスクリプションは、「サブスクリプション」表に「保留中」の状態でリストされます。
ステップ6: エンドポイントが通知を受信できることの確認
場所: Database Actions: 「ライブ・フィード」ページ
- Database Actionsの「ライブ・フィード」ページに戻り、通知ベースのフィード用に構成するライブ表フィードのカードを見つけます。
- カードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「確認URLを表示」を選択します。
- 確認URLダイアログ・ボックスで、リンクをクリックしてURLを確認します。これによってこのダイアログ・ボックスが閉じることはありません。リンクが成功すると、サブスクリプションがアクティブであることを確認するメッセージが表示されます。
- 確認URLダイアログ・ボックスに戻り、「クラウド・ストア確認プロセスが完了している場合のみチェックします。」チェック・ボックスを選択して、「OK」をクリックします。
前述のステップを完了すると、バケットにアップロードされた新しいファイルはすべて、ライブ表フィード表に自動的にロードされます。
12.5.2 Amazon Simple Storage Service (S3)を使用した通知ベースのライブ表フィードの作成
Amazon Simple Storage Service (S3)とOracle Cloud Infrastructure (OCI)を統合して、監視しているストレージ・オブジェクトに更新がある場合にライブ・フィード通知のプロセスを自動化できます。次の項では、データ・ファイルが格納されているAmazon S3バケットにイベント通知を作成する手順について説明します。
ヒント:
これらのステップを完了するには、Amazon Web Services (AWS)管理コンソールとOracle Database Actionsのページを切り替える必要があります。一方のブラウザ・ページまたはタブでAmazon Web Servicesを開き、他方でDatabase Actionsを開くと、簡単に行き来できるので便利です。
ステップ1: Amazon S3でのオブジェクト・ストア・バケットの作成
場所: Amazon Web Services (AWS)管理コンソール
- AWS管理コンソールにログインし、Amazon S3コンソールを開きます。
- ホーム・ページで、「Create Bucket」アイコンをクリックします。
- 「Bucket name」に、バケットの有効な名前を入力します。例: testbucket。バケットの作成後、その名前を変更することはできません。
- 「Region」で、ドロップダウンからAmazon Web Services (AWS)リージョンを選択します。例: us-west-2
- 「Block Public Access」のバケット設定で、バケットに適用する「Block Public Access」設定を選択します。いずれかをオフにする必要があることがわかっていないかぎり、すべての設定を有効にしておくことをお薦めします。
- S3オブジェクト・ロックを有効にする場合は、「Advanced settings」を選択し、すべてのデフォルト・オプションを受け入れます。このステップは省略可能です。
- 「Create bucket」を選択します。
ステップ2: アクセス・キーの作成
場所: AWS管理コンソール
Amazon Simple Notification Service (SNS)にアクセスするには、Amazon Web Services (AWS)でリクエストの検証に使用できる資格証明が必要です。このような資格証明には、Amazon SNSトピックにアクセスするための権限が必要です。次のステップでは、セキュリティ目的でAWS Identity and Access Management (IAM)を使用してアクセス・キーを作成するステップの詳細を説明します。
- AWS管理コンソールにログインし、Amazon Identity and Access Management (IAM)コンソールを開きます。
- ナビゲーション・メニューで、「Users」を選択します。
- 自分のユーザー名を選択します。
- 「Security Credentials」タブで、「Create access key」を選択します。
- 画面のアクセス・キーIDおよびシークレット・アクセス・キーをコピーします。それらをクリップボードに貼り付けます。
- キーをダウンロードするには、「Download.csv file」アイコンを選択します。このようにして、ファイルを安全な場所に格納できます。
ステップ3: Amazon S3クラウド・ストレージ・リンクの追加
場所: Database Actions: 「クラウドの管理」ページ
ライブ表フィードを作成する前に、使用するクラウド・ストアへの接続を確立する必要があります。
- ページ上部の「クラウド・ストアの管理」ボタンをクリックして、「クラウドの管理」ページに移動します。Amazon S3によって提供されるクラウド・ストレージに存在するソース・ファイルを追加する手順の詳細は、「接続の管理」のAmazon S3クラウド・ストレージ・リンクの作成を参照してください。
ノート:
前のステップ(「ステップ2: アクセス・キーの作成」)で生成されたアクセス・キーIDおよびシークレット・アクセス・キーを、「クラウド・ストレージの追加」ページの各テキスト・フィールドに貼り付けます。
ステップ4: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー
場所: Database Actions: 「ライブ・フィード」ページ
ライブ表フィードを作成すると、外部ストレージ・ソースからADBの表にリアルタイムでデータをロードできます。使用する外部ストレージには、Oracle Object Store、AWS S3、Microsoft Azureコンテナなどがあります。
通知を使用するように、新規または既存のライブ表フィードを構成できます:
- 「データのフィード」の説明に従って、Database Actionsの「ライブ・フィード」ページに移動します。
- 「ライブ表フィード・オブジェクトの作成」または「ライブ表フィード・オブジェクトの編集」の説明に従って、ライブ表フィード・オブジェクトを作成または編集します。「通知に対して有効」オプションを選択します
- 「作成」または「保存」をクリックします。
- ライブ・フィードのカードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「通知URLを表示」を選択します。
- 通知URLダイアログ・ボックスで、「コピー」アイコンをクリックして、URLをクリップボードにコピーします。後で取得できるように、一時ファイルにコピーすることもできます。このURLは、後続のステップ(「ステップ7: 通知サービス・サブスクリプションの作成」)で使用します。
ステップ5: 通知サービス・サブスクリプション・トピックの作成
場所: Amazon Simple Notification Service (SNS)コンソール
Amazon Simple Notification Service (Amazon SNS)トピックを使用して、Amazon S3通知を受信します。Amazon SNSトピックを使用して、バケットに通知構成を追加する必要があります。SNSトピックは、AWSバケットで発生する様々なイベントの通知を送信するために使用される共有の場所です。
作成中に、トピック名とトピック・タイプを選択します。トピックの作成後、トピックのタイプまたは名前を変更することはできません。その他の構成の選択はすべて、トピックの作成時にはオプションであり、後で編集できます。
AWSサービスにアクセスするには、最初にAWSアカウントを作成する必要があります。
AWS管理コンソールに移動し、「Create an AWS Account」を選択します。
Amazon SNSリンクの手順に従って、最初のIAM管理者ユーザーおよびグループを作成します。IAMユーザーとして任意のAWSサービスにログインできるようになりました。
- IAMユーザーとしてAmazon SNSコンソールにログインします。
- 「Topics」ページで、「Create topic」を選択します。
- 「Create topic」ページの「Details」セクションで、次のフィールドを指定します。
- Type: Standard (StandardまたはFIFO)
- Name: notify-topic。FIFOトピックの場合は、名前の末尾にfifoを追加します。
- Display Name: このフィールドはオプションです。
- 「Encryption」セクションを開き、「Disable encryption」を選択します。
- 必要に応じて、「Access policy」セクションを開き、追加のアクセス権限を構成します。デフォルトでは、トピック所有者のみがトピックをパブリッシュまたはサブスクライブできます。このステップは省略可能です。入力したトピックの詳細に基づいて、ポリシーのJSON形式を編集します。JSON形式のアクセス・ポリシーの例を次に示します。
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement":[ {"Sid": "__default_statement_ID", "Effect": "Allow", "Principal": {"AWS": "*" },"Action": [ "SNS:Publish", "SNS:RemovePermission", "SNS:SetTopicAttributes", "SNS:DeleteTopic", "SNS:ListSubscriptionsByTopic", "SNS:GetTopicAttributes", "SNS:AddPermission", "SNS:Subscribe" ], "Resource": "arn:aws:sns:us-west-2:555555555555:notify-topic", //us-west-2 is the region "Condition": { "StringEquals": { "AWS:SourceOwner": "555555555555" } } }, { "Sid": "s3_policy", //This field accepts string values "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-west-2:555555555555:notify-topic", //notify-topic is the topic name "Condition": { "StringEquals": { "aws:SourceAccount": "555555555555" //This is the Account ID }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:testbucket /*testbucket is the s3 bucket name. You will get notifications only when file is uploaded to this bucket.*/ " } } } ] }
- 「Delivery retry policy (HTTP/S)」セクションを開き、失敗したメッセージ配信試行をAmazon SNSで再試行する方法を構成します。このステップは省略可能です。
- 「Delivery status logging」セクションを開き、Amazon SNSがメッセージの配信をCloudWatchに記録する方法を構成します。このステップは省略可能です。
- 「Tags」セクションを開き、トピックにメタデータ・タグを追加します。このステップは省略可能です。
- 「Create topic」を選択します。
- トピックの名前、ARN (Amazonリソース名)、およびトピック所有者のAWSアカウントIDが「Details」セクションに表示されます。
- トピックのARNをクリップボードにコピーします。
ステップ6: Amazon S3コンソールを使用したイベント通知の有効化および構成
場所: Amazon S3管理コンソール
Amazon S3バケット・イベントを有効にすると、イベントが発生するたびに通知メッセージを宛先に送信できます。ロード可能な更新または新規のデータがある場合にOCIに通知するように、S3バケットのイベント通知を構成します。次のステップでは、Amazon S3コンソールでイベント通知を有効にするための手順について説明します。
- Amazon S3管理コンソールにログインし、IAM (Amazon Identity and Access Management)ユーザーとしてサインインします。
- 「Buckets」リストで、バケットの名前(testbucket)を選択します。これは、「ステップ1: Amazon S3でのオブジェクト・ストア・バケットの作成」で作成したバケットです。
- 「Properties」アイコンを選択します。
- 「Event Notifications」セクションに移動し、「Create event notification」アイコンを選択します。
- 「General configuration」セクションで、イベント通知に次の値を指定します。
- Event name: bucket-notification
- Prefix: これは、イベント通知を接頭辞でフィルタするための値です。オプションの値です。これはイベント・アクティビティをフィルタするために追加されます。
- Suffix: これは、イベント通知を接尾辞でフィルタするための値です。オプションの値です。これはイベント・アクティビティをフィルタするために追加されます。
- 「Event types」セクションで、通知を受信するイベント・タイプを1つ以上選択します。選択するイベント・タイプが不明な場合は、「All object create events」オプションを選択します。
- 「Destination」セクションで、イベント通知の宛先として「SNS Topic」を選択します。
ノート:
イベント通知をパブリッシュする前に、関連するAPIをコールするために必要な権限をAmazon S3に付与する必要があります。これは、Lambda関数またはSNSトピックに通知をパブリッシュできるようにするためです。 - イベント通知の宛先としてSNSトピックを選択した後、ドロップダウンからSNSトピック(notify-topic)を選択します。これは、「ステップ5: 通知サービス・サブスクリプション・トピックの作成」で作成したトピックです。
- 「Save changes」を選択します。
ステップ7: 通知サービス・サブスクリプションの作成
場所: Amazon SNSコンソール
Amazon SNSトピックごとに、サブスクリプションのセットがあります。メッセージがトピックにパブリッシュされると、SNSは、そのすべてのサブスクライバへのメッセージ配信を処理します。サブスクライバには、SMSメッセージを受信できるAWS Lambda関数、HTTP(S)エンドポイント、電子メール・アドレスおよび携帯電話番号を指定できます。
Amazon SNSは、トピックをそのトピックにサブスクライブしているサブスクライバのリストと照合し、それらの各サブスクライバにメッセージを配信します。
- Amazon SNSコンソールにログインします。
- 左側のナビゲーション・ペインで、「Subscriptions」を選択します。
- サブスクリプション・ページで、「Create subscription」を選択します。
- 「Create subscription」ページの「Details」セクションで、次の値を指定します。
- Topic ARN: 前のステップ(「ステップ5: 通知サービス・サブスクリプション・トピックの作成」)でコピーしたARN値を貼り付けます。
- Protocol: HTTPS
- Endpoint: 前のステップ(「ステップ4: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー」)でライブ表フィードの作成時にコピーしたエンドポイント値を貼り付けます。
- 「Subscription filter policy」セクションを開き、フィルタ・ポリシーを構成します。このステップは省略可能です。
- 「Redrive policy (dead-letter queue)」セクションを開き、サブスクリプションのデッドレター・キューを構成します。このステップは省略可能です。
- 「Create subscription」を選択します。
ノート:
他のAWSアカウントのHTTP(S)エンドポイント、電子メール・アドレスおよびAWSリソースでは、メッセージを受信する前にサブスクリプションの確認が必要です。
ステップ8: エンドポイントが通知を受信できることの確認
場所: Database Actions: 「ライブ・フィード」ページ
- Database Actionsの「ライブ・フィード」ページに戻り、通知ベースのフィード用に構成するライブ表フィードのカードを見つけます。
- カードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「確認URLを表示」を選択します。
- 確認URLダイアログ・ボックスで、リンクをクリックしてURLを確認します。これによってこのダイアログ・ボックスが閉じることはありません。リンクが成功すると、サブスクリプションがアクティブであることを確認するメッセージが表示されます。
- 確認URLダイアログ・ボックスに戻り、「クラウド・ストア確認プロセスが完了している場合のみチェックします。」チェック・ボックスを選択して、「OK」をクリックします。
前述のステップを完了すると、バケットにアップロードされた新しいファイルはすべて、ライブ表フィード表に自動的にロードされます。
Amazon S3コンソールを使用してイベント通知を有効化および構成する方法の詳細は、「Enabling and configuring event notifications using the Amazon S3 console」を参照してください。
12.5.3 Microsoft Azureを使用した通知ベースのライブ表フィードの作成
通知ベースのライブ表フィードは、Oracle Cloud Infrastructureとサードパーティのクラウド・メッセージ・キューイング・サービス(Azure Event Gridなど)の間のインタフェースです。
次の項では、Microsoft (MS) Azureをクラウド・ストレージとして使用して自動ライブ・フィード・メッセージを生成する手順について説明します。コンテナに更新があり、通知条件が満たされると、ログ・メッセージが生成され、Oracle Cloud Infrastructureのライブ・フィードに表示されます。
Microsoft Azureをクラウド・ストレージとして使用して通知ベースのライブ・フィードを作成するには、次を実行する必要があります:
- ステップ1: Microsoft Azureでのリソース・グループの作成
- ステップ2: Microsoft Azureでのストレージ・アカウントの作成
- ステップ3: アクセス・キーの作成
- ステップ4: コンテナの作成
- ステップ5: Microsoft Azureクラウド・ストアを使用したクラウド・ストレージの追加
- ステップ6: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー
- ステップ7: イベント・リソース・プロバイダの有効化
- ステップ8: イベント・サブスクリプションの作成
- ステップ9: エンドポイントが通知を受信できることの確認
ヒント:
前述のステップを完了するには、Microsoft AzureポータルとOracle Database Actionsのページを切り替える必要があります。一方のブラウザ・ページまたはタブでMicrosoft Azureポータルを開き、他方でDatabase Actionsを開くと、簡単に行き来できるので便利です。
ステップ1: Microsoft Azureでのリソース・グループの作成
場所: Microsoft Azureポータル
- Azureポータルで、「Resource groups」ボタンをクリックします。
- 「Add」を選択します。
- 以下の値を入力します。
- Subscription: Azureサブスクリプション(Microsoft Azureエンタープライズなど)を選択します。
- Resource group: 新しいリソース・グループ名(resource-groupなど)を入力します。
- Region: 場所(US westなど)を選択します。
- 「Review+create」をクリックします。
- 「作成」をクリックします。リソース・グループの作成には数秒かかります。
ステップ2: Microsoft Azureでのストレージ・アカウントの作成
場所: Microsoft Azureポータル
Azureストレージ・アカウントには、BLOB、表、ディスクなど、すべてのストレージ・データ・オブジェクトが含まれます。リソース・グループ内にストレージ・アカウントを作成できます。これは、データに一意のネームスペースを提供します。ストレージ・アカウントを作成するには、次を実行します:
- 左側のポータル・メニューから「Storage accounts」を選択し、ストレージ・アカウントのリストを表示します。
- 「Storage accounts」ページで、「Create」アイコンをクリックします。
- 「Basic」タブで、ストレージ・アカウントに関する次の情報を指定します。
- Subscription: Microsoft Azure Enterprise
- Resource group: resource-group
- Storage account name: teststorage
- Region: 場所(US westなど)を選択します。
- Redundancy: Locally-redundant storage (LRS)
- 「Review+create」を選択してデフォルト・オプションを受け入れ、アカウントの検証に進むことができます。
- 検証に合格したら、続けて「Create storage」アカウントをクリックできます。検証に失敗した場合は、変更する必要がある設定がポータルに示されます。
ステップ3: アクセス・キーの作成
場所: Microsoft Azureポータル
ストレージの場所でアクセス・キーを取得するために必要な権限をMicrosoft Azureに付与する必要があります。ストレージ・アカウントに固有のアクセス・キーは、前のステップでストレージ・アカウントが作成されると自動的に生成されます。次のステップでは、アクセス・キーを作成する手順について説明します。
- 「Security+Networking」で、「Access keys」を選択します。アカウント・アクセス・キーは、各キーの完全な接続文字列とともに表示されます。
- 「Show keys」を選択して、各キーのアクセス・キーおよび接続文字列を表示し、値をコピーします。
- key1の接続文字列値をコピーします。この値は、次のステップ(「ステップ5: Microsoft Azureクラウド・ストアを使用したクラウド・ストレージの追加」)の「Azureストレージ・アカウント・アクセス・キー」テキスト・フィールドに貼り付けます。
- ストレージ・アカウント名(teststorage)をコピーし、次のステップ(「ステップ5: Microsoft Azureクラウド・ストアを使用したクラウド・ストレージの追加」)の「Azureストレージ・アカウント名」テキスト・フィールドに貼り付けます。
- 機能するかどうかを確認するために資格証明をテストします。
ステップ4: コンテナの作成
場所: Microsoft Azureポータル
コンテナは、Azure Blob (バイナリ・ラージ・オブジェクト)ストレージを保持する場所です(Amazon S3およびOCIではバケットとも呼ばれます)。コンテナを作成するには、次のステップに従います。
- Azureポータルで新しいストレージ・アカウントに移動します。
- ストレージ・アカウントの左側のメニューで、「Data storage」セクションまでスクロールし、「Containers」を選択します。
- 「+Container」アイコンをクリックします。
- 新しいコンテナの名前を入力します。コンテナ名は小文字にする必要があり、文字または数字で始める必要があります。文字、数字およびダッシュ文字のみ使用できます。
- 「Public Access Level」のレベルを「Private」に設定します。デフォルトのレベルは「Private」です。
- 「Create」を選択してコンテナを作成します。
ステップ5: Microsoft Azureクラウド・ストアを使用したクラウド・ストレージの追加
場所: Database Actions: 「クラウドの管理」ページ
- ページ上部の「クラウド・ストアの管理」ボタンをクリックして、「クラウドの管理」ページに移動します。Microsoft Azureクラウド・ストレージによって提供されるクラウド・ストレージに存在するソース・ファイルを追加する手順の詳細は、「接続の管理」のMicrosoft Azureクラウド・ストレージ・リンクの作成を参照してください。
ノート:
前のステップの「ステップ3: アクセス・キーの作成」のkey1の接続文字列値を、「クラウド・ストレージの追加」ページの「Azureストレージ・アカウント・アクセス・キー」テキスト・フィールドに貼り付けます。また、前のステップの「ステップ3: アクセス・キーの作成」で生成されたストレージ・アカウント名を、「クラウド・ストレージの追加」ページの「Azureストレージ・アカウント名」テキスト・フィールドに貼り付けます。
ステップ6: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー
場所: Database Actions: 「ライブ・フィード」ページ
ライブ表フィード・オブジェクトを使用すると、ポーリング遅延なしでMicrosoft Azureクラウド・ストレージからデータをロードできます。このオブジェクトは、Oracle Cloud InterfaceとMicrosoft Azure間の統合を作成します。
通知を使用するように、新規または既存のライブ表フィードを構成できます:
- 「データのフィード」の説明に従って、Database Actionsの「ライブ・フィード」ページに移動します。
- 「ライブ表フィード・オブジェクトの作成」または「ライブ表フィード・オブジェクトの編集」の説明に従って、ライブ表フィード・オブジェクトを作成または編集します。「通知に対して有効」オプションを選択します
- 「作成」または「保存」をクリックします。
- ライブ・フィードのカードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「確認URLを表示」を選択します。
- 通知URLダイアログ・ボックスで、「コピー」アイコンをクリックして、URLをクリップボードにコピーします。後で取得できるように、一時ファイルにコピーすることもできます。このURLは、後続のステップ(「ステップ8: イベント・サブスクリプションの作成」)で使用します。
ステップ7: イベント・リソース・プロバイダの有効化
場所: Microsoft Azureポータル
Event Gridを初めて使用する場合は、Event Gridリソース・プロバイダを有効にする必要があります。
- 左側のメニューで、「Subscriptions」を選択します。
- Event Gridに使用するサブスクリプション(Microsoft Azureエンタープライズ)を選択します。
- 左側のメニューの「Settings」で、「Resource Providers」を選択します。
- Microsoft.EventGridを検索します。
- 「Register」を選択します。
登録が完了するまでに1分かかります。
ステップ8: イベント・サブスクリプションの作成
場所: Microsoft Azureポータル
イベント・サブスクリプションを作成するには、サブスクリプションを構成し、通知を受信するエンドポイントを指定します。
- 「ステップ2: Microsoft Azureでのストレージ・アカウントの作成」で作成したストレージ・アカウントを選択します。
- 左側のナビゲーション・ペインで、「Events」アイコンを選択します。
- 「+Event Subscription」をクリックします。
「Create Event Subscription」ウィンドウが表示されます。
- 「Event Subscription」詳細セクションで次のフィールドを指定します:
- Name: Eventssub。これは、作成するイベント・サブスクリプションの名前です。
- Event Schema: Event Grid Schema
- 「Topic Details」セクションで次のフィールドを指定します:
- Topic Type: Storage account
- System Topic Name: eventtopic。
- 「Event Types」セクションで次のフィールドを指定します:
- Event Type: MicrosoftStorage.BlobCreated
- 「Endpoint Details」セクションで次のフィールドを指定します:
- Endpoint Type: Web Hook
- Endpoint: 「ステップ6: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー」でコピーした通知URLを貼り付けます。
- 「Create」を選択します。
このようにして、Microsoft Azureでは最初にシステム・トピックを作成し、次にそのトピックのイベント・サブスクリプションを作成します。
ステップ9: エンドポイントが通知を受信できることの確認
場所: Database Actions: 「ライブ・フィード」ページ
- Database Actionsの「ライブ・フィード」ページに戻り、「ステップ6: 通知を使用ためのライブ表フィードの作成および構成と、通知URLのコピー」で作成した通知ベースのフィード用に構成するライブ表フィードのカードを見つけます。
- カードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「確認URLを表示」を選択します。
- 確認URLダイアログ・ボックスで、リンクをクリックしてURLを確認します。これによってこのダイアログ・ボックスが閉じることはありません。リンクが成功すると、サブスクリプションがアクティブであることを確認するメッセージが表示されます。
ノート:
確認URLリンクは数分後に期限切れになります。期限切れになる前にリンクをクリックする必要があります。 - 確認URLダイアログ・ボックスに戻り、「クラウド・ストア確認プロセスが完了している場合のみチェックします。」チェック・ボックスを選択して、「OK」をクリックします。
- 作成したコンテナに移動します。
- 「Container」を選択して、それに含まれるBLOBのリストを表示します。
- 「Upload」ボタンを選択してローカル・リポジトリを開き、ブロックBLOBとしてアップロードする必要があるファイルを参照します。
- 「Upload」ボタンを選択して、BLOBをアップロードします。
- これで、コンテナ内の新しいBLOBがリストに表示されます。
- Database Actionsの「ライブ・フィード」ページに戻り、通知ベースのフィード用に構成するライブ表フィードのカードを見つけます。
- カードの「アクション」(縦に並んだ3つのドット)アイコンをクリックして、「ライブ表フィードの実行の詳細」を選択します。
「ライブ表フィードの実行の詳細」ウィンドウで、Microsoft Azureストレージからライブ・フィード表にアップロードされたBLOBのログを表示できます。
Azureポータルでトピックおよびサブスクリプションを作成する方法の詳細は、「Azure Event Grid Notifications」を参照してください。