外部カタログ

Oracle AI Data Platform以外の場所からデータをソーシングするための外部カタログを作成します。

チュートリアル・アイコン LiveLabsスプリント

外部カタログは、AI Data PlatformをOracle Autonomous AI Lakehouse、Oracle AI Database、Oracle Autonomous AI Transaction Processingなどの外部データ・ソース、およびSnowflake、Azure SQL、MySQLなどのサードパーティ・ストアに接続します。AIデータ・プラットフォームは、これらのソースからメタデータを検出してマスター・カタログに同期するため、ユーザーは、基礎となるデータを複製せずにリモート・スキーマおよび表を参照および問合せできます。

外部カタログは、外部カタログの作成時に提供された資格証明を使用して、外部ソースを問い合せます。データ・ソースの詳細は、内部ソースを参照してください。

For example, if you create an external catalog for an Autonomous AI Lakehouse instance where the Autonomous AI Lakehouse user credentials used have access to schema1 but not schema2, only schema1 appears in the external catalog. 外部カタログに対する権限を持つユーザーは、Autonomous AI Lakehouseユーザーがアクセスできるスキーマのみを問い合せることができます。

ノート:

AIデータ・プラットフォームでは、プラガブル・データベース(PDB)間で共有されるスキーマおよび表から、またはOracle管理スキーマおよび表からデータを収集することはサポートされません。

Autonomous AI LakehouseおよびAutonomous AI Transaction Processingに必要な権限

AIデータ・プラットフォームで外部カタログを作成する場合、接続に使用するユーザー資格証明には、少なくとも次の権限が必要です:
  • CREATE SESSION: データベースに接続する
  • 最小権限の付与または専用の読取りロールによる、必要なオブジェクト(表/ビュー/外部表)に対するSELECTアクセス
  • READ、WRITE on DIRECTORY DATA_PUMP_DIR
データを挿入する場合、または外部カタログに新しい表を作成する場合は、ユーザーがDWROLEの一部であることを確認します。詳細は、Oracle Autonomous AI Transaction ProcessingドキュメントのAutonomous AI Databaseでのユーザー権限の管理- クライアント・ツールとの接続を参照してください。

制限事項

UPDATE操作は、外部カタログではサポートされていません。検出および問合せアクセスには、外部カタログ表を使用します。

外部カタログの作成に使用された資格証明にDDL文を実行する権限がある場合でも、DDLはサポートされていません。

表名の大文字小文字は、Oracle Autonomous AI Lakehouseでの表の作成方法に影響します:
  • 表名を大文字で指定すると、表は大文字を使用して作成され、Autonomous AI Lakehouseでのデフォルトの大/小文字を区別しない動作に従います。
  • 表名を小文字で指定すると、その表はAutonomous AI Lakehouseで大/小文字が区別されるように作成されます。Autonomous AI Lakehouseで作成された表の列名は、常に大/小文字が区別されます。
  • 外部カタログの取込みおよびリフレッシュ中、ソース列のコメントは256 UTF-8バイトに制限されます。制限は文字ではなくバイト単位で測定されるため、マルチバイト文字を含むコメントが256文字以下の場合、制限を超えることがあります。制限を超えると、メタデータの取込みまたはリフレッシュが失敗する可能性があります。ソース列のコメントを256 UTF-8バイト以下に減らしてから再試行してください。

外部カタログの作成

カタログは、Oracle AI Data Platformインスタンスから外部ソースに接続できます。

  1. 左側のナビゲーション・ペインで「作成」をクリックし、「カタログ」を選択します。「マスター・カタログ」にナビゲートし、「カタログの作成」アイコン 「マスター・カタログへのカタログの作成」をクリックすることもできます。
  2. 「名前」および「説明」フィールドに入力します。
  3. 「カタログ・タイプ」ドロップダウン・リストから、「外部カタログ」を選択します。
  4. 外部ソース・タイプを選択します。
  5. 該当する場合は、ユーザー名とパスワードを入力します。
  6. SSLはデフォルトで有効です。SSLを無効にする場合はボックスをクリアします。
  7. 「作成」をクリックします。
    外部ソースからデータを抽出している外部カタログには、回転する円のアイコンが表示されます。
    強調表示されたカタログの横に回転中の「進行中」アイコンが表示されたマスター・カタログ・ツリー・ビュー

    ジョブ実行から進捗をモニターすることもできます。

プライベート・ネットワークの外部カタログの作成

プライベート・ネットワーク内のデータ・ソースにアクセスする外部カタログを作成できます。

  1. 左側のナビゲーション・ペインで「作成」をクリックし、「カタログ」を選択します。「マスター・カタログ」にナビゲートし、「カタログの作成」アイコン 「マスター・カタログへのカタログの作成」をクリックすることもできます。
  2. 「名前」および「説明」フィールドに入力します。
  3. 「カタログ・タイプ」ドロップダウン・リストから、「外部カタログ」を選択します。
  4. 外部ソース・タイプを選択します。
  5. 該当する場合は、ユーザー名とパスワードを入力します。
  6. SSLはデフォルトで有効です。SSLを無効にする場合はボックスをクリアします。
  7. 「プライベート・ネットワークの有効化」を選択します。
  8. 必要なプライベート・ネットワーク構成を持つワークスペースを選択します。
    プライベート・ネットワーク用に構成されたワークスペースの設定の詳細は、「プライベート・ネットワーク・アクセスが有効なワークスペースの作成」を参照してください。
  9. 「作成」をクリックします。
    外部ソースからデータを抽出している外部カタログには、回転する円のアイコンが表示されます。
    強調表示されたカタログの横に回転中の「進行中」アイコンが表示されたマスター・カタログ・ツリー・ビュー

    ジョブ実行から進捗をモニターすることもできます。

Oracle Autonomous AI Database on Exadata Cloud@CustomerをOracle AI Data Platformに接続する方法

Oracle Autonomous AI Transaction Processing、Oracle Autonomous AI DatabaseまたはOracle Autonomous AI Lakehouseデータベースの外部カタログは、Oracle Autonomous AI Database on Exadata Cloud@Customerで実行できます。データベースにプライベート・ネットワークを介してのみアクセスできる場合は、プライベート・ネットワーク・アクセスおよびデータベースSCAN詳細を使用してAI Data Platformワークスペースを構成します。

接続は、クライアント資格証明ウォレットとともにTLSを使用します。

要件

始める前に次を確認します。
  • データベースがプロビジョニングされ、使用可能になります。
  • データベース・クライアント資格証明ウォレットをダウンロードしました。
  • データベースSCAN完全修飾ドメイン名およびTLSリスナー・ポートがわかります。
  • SCAN名は、AIデータ・プラットフォーム・ワークスペースで使用されるプライベート・ネットワークから解決できます。
  • ネットワーク・ルートおよびセキュリティ・ルールにより、ワークスペース・ネットワークからデータベース・リスナー・ポートへのトラフィックが許可されます。
  • 必要なVCN、サブネットおよびネットワーク・セキュリティ・グループを検査する権限があります。
  • データベース・ユーザーには、外部カタログを介して公開するスキーマおよびオブジェクトに対するCREATE SESSION権限およびSELECT権限があります。
  • データベース・ユーザーには、意図した読取りまたは書込み操作に必要な追加の権限があります。
指定したデータベース・ユーザーがアクセスできるスキーマおよびオブジェクトのみが検出され、外部カタログに追加されます。

プライベート接続のあるワークスペースの作成

プライベート・ネットワーク・アクセスが有効なワークスペースの作成のステップに従い、次の変更を行います:
  • Oracle Exadata Cloud@Customer環境への接続を提供するVCNおよびサブネットを指定します。
  • 「拡張ネットワーク・オプション」で、「My data sources require access through a SCAN proxy」を選択します。
  • データベースSCAN完全修飾ドメイン名を入力します。
  • データベースTLSリスナー・ポートを入力します。

外部カタログの作成

「プライベート・ネットワークの外部カタログの作成」に示されているステップに従い、次の選択を行います。
  • 「外部ソース・タイプ」で、「Oracle Autonomous AI Transaction Processing」を選択します。
  • 「接続方法」で、「Wallet」を選択します。
  • データベースからダウンロードしたクライアント資格証明ウォレットをアップロードします。
  • ウォレットから必要なデータベース・サービスを選択します。
  • 必要に応じて、ウォレット・パスワードを指定します。
  • データベース・ネットワークおよびSCANアドレスにアクセスできる上で構成されたワークスペースを選択します。
  • 接続をテストして、すべてが正しく構成されていることを確認します。

接続の検証

カタログの作成およびメタデータの検出が完了すると、次のようになります。
  • 必要なスキーマおよび表が外部カタログに表示されることを確認します。
  • プライベート・ワークスペースでコンピュート・クラスタを起動または選択します。
  • 3つの部分からなる名前を使用して、検出された表を問い合せます。
SELECT *
FROM <catalog_name>.<schema_name>.<table_name>;

外部データ・カタログのリフレッシュ

Oracle AI Data Platformで外部カタログをリフレッシュして、そのコンテンツを外部ソースと同期できます。

  1. 左側のナビゲーション・ペインで、マスター・カタログ・アイコン「マスター・カタログ」をクリックします。
  2. マスター・カタログ・ツリーで、リフレッシュする外部カタログを選択します。
  3. リフレッシュ・アイコン 「リフレッシュ」をクリックします。
    外部カタログは、「マスター・カタログ」の下に回転する円アイコンとともに表示され、外部ソースからデータを抽出してメタデータを更新します。
    強調表示されたカタログの横に回転中の「進行中」アイコンが表示されたマスター・カタログ・ツリー・ビュー

    ジョブ実行から進捗をモニターすることもできます。ジョブのモニターを参照してください。

SQLを使用した外部カタログのリフレッシュ

SQL文法を使用して、外部カタログとそのスキーマおよび表のメタデータをリフレッシュし、コンテンツを外部ソースと同期できます。

外部カタログをリフレッシュするには、ノートブックで次のSQLコマンドを使用します:

REFRESH EXTERNAL CATALOG <<catalog_name>>

外部カタログのスキーマをリフレッシュするには、次を使用します。

REFRESH SCHEMA IN EXTERNAL CATALOG <<catalog_name.schema_name>>

外部カタログのスキーマ内の表をリフレッシュするには、次を使用します。

REFRESH TABLE IN EXTERNAL CATALOG <<catalog_name.schema_name.table_name>>

詳細は、SQL文法を参照してください。

外部カタログの名前変更

コンテンツまたは目的が変更された場合は、外部カタログの名前を変更できます。

  1. 左側のナビゲーション・ペインで、マスター・カタログ・アイコン「マスター・カタログ」をクリックします。
  2. 「カタログ」タブで、カタログを見つけてアクションの3つのドット・アイコン 「アクション」をクリックし、「名前変更」をクリックします。

    「名前変更」が強調表示されたカタログの「処理」3ドット・メニューが開きます

  3. カタログ名を編集し、[Enter]を押します。

外部カタログ摘要の編集

外部カタログの内容または目的が変更された場合は、その説明を変更できます。

  1. 左側のナビゲーション・ペインで、マスター・カタログ・アイコン「マスター・カタログ」をクリックします。
  2. 「カタログ」タブで、カタログを見つけてアクションの3つのドット・アイコン 「アクション」をクリックし、「説明の編集」をクリックします。

    「Edit Description(摘要の編集)」が強調表示されたカタログの「Actions(処理)」3ドット・メニュー

  3. カタログの説明を編集し、「保存」をクリックします。

外部カタログのパスワードの変更

外部カタログに必要なパスワードを更新して、ソースに引き続きアクセスできるようにします。

  1. 左側のナビゲーション・ペインで、マスター・カタログ・アイコン「マスター・カタログ」をクリックします。
  2. 「カタログ」タブで、カタログを見つけてアクションの3つのドット・アイコン 「アクション」をクリックし、「パスワードの変更」をクリックします。
  3. 外部カタログの新しいパスワードを入力し、「保存」をクリックします。

外部カタログの削除

外部カタログが不要になった場合は削除できます。

外部カタログを削除すると、ローカルに格納されたメタデータのみが削除されます。外部データ・ソースのデータは影響を受けません。

  1. 左側のナビゲーション・ペインで、マスター・カタログ・アイコン「マスター・カタログ」をクリックします。
  2. 「カタログ」タブで、カタログを見つけてアクションの3つのドット・アイコン 「アクション」をクリックし、「削除」をクリックします。

    「削除」が強調表示されたカタログの「処理」3ドット・メニューが開きます

  3. 「カタログの削除の確認」を選択します。
  4. 「削除」をクリックします

外部カタログ内の表からのデータの削除

プッシュダウンSQL DELETEをサポートするようにカタログおよび表が構成されている場合、Spark書込みパスを使用して外部カタログ表から行を削除できます。

カタログIDを使用した表データの削除: Pythonの例

from pyspark.sql.types import StructType

df = spark.createDataFrame([], StructType([]))


    df.write
      .format("aidataplatform")
      .option("catalog.id", "<catalog>")
      .option("pushdown.sql", "DELETE FROM <schema>.<target_table> WHERE ID = 2")
      .save()

カタログIDを使用した表データの削除: Scalaの例

val df = spark.emptyDataFrame

df.write
  .format("aidataplatform")
  .option("catalog.id", "<catalog>")
  .option("pushdown.sql", "DELETE FROM <schema>.<target_table> WHERE ID = 2")
  .save()

表データを削除するための取込みスタイルのサンプル: Pythonの例

from pyspark.sql.types import StructType
df = spark.createDataFrame([], StructType([]))

df.write
  .format("aidataplatform")
  .option("data.asset.type", "ORACLE_ALH")
  .option("tns.alias", alhTns)
  .option("user.name", userName)
  .option("wallet.content", alhWalletContent)
  .option("password", alhPassword)
  .option("pushdown.sql", "DELETE FROM ADMIN.PUSHDOWN_FEATURE WHERE ID = 2")
  .save()

表データを削除するための取込みスタイルのサンプル: Scalaの例

val df = spark.emptyDataFrame

df.write
  .format("aidataplatform")
  .option("data.asset.type", "ORACLE_ALH")
  .option("tns.alias", alhTns)
  .option("user.name", userName)
  .option("wallet.content", alhWalletContent)
  .option("password", alhPassword)
  .option("pushdown.sql", "DELETE FROM ADMIN.PUSHDOWN_FEATURE WHERE ID = 2")
  .save()