外部カタログ

外部カタログは、データがOracle AI Data Platform Workbenchの外部の場所から取得されるカタログです。

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

外部カタログは、Oracle Autonomous AI LakehouseOracle AI DatabaseOracle Autonomous AI Transaction Processingなどのソースに接続して、データをAI Data Platform Workbenchに抽出します。外部カタログは、外部カタログの作成時に提供された資格証明を使用して、外部ソースを問い合せます。データ・ソースの詳細は、内部ソースを参照してください。

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 LakehouseAI Data Platformから表を作成する場合は、表の作成動作に注意してください
  • 表名が大文字で指定されている場合、表は大文字を使用して作成され、Autonomous AI Lakehouseのデフォルトの大/小文字を区別しない動作に従います。
  • 表名が小文字で指定されている場合、表はAutonomous AI Lakehouseで大/小文字が区別されるように作成されます。Autonomous AI Lakehouseで作成された表の列名は、常に大/小文字が区別されます。

外部カタログの作成

AIデータ・プラットフォーム・ワークベンチから外部ソースにカタログを接続できます。

  1. 左側のナビゲーション・ペインで「作成」をクリックし、「カタログ」を選択します。「マスター・カタログ」にナビゲートし、「カタログの作成」アイコン 「マスター・カタログへのカタログの作成」をクリックすることもできます。
  2. 「名前」および「説明」フィールドに入力します。
  3. 「カタログ・タイプ」ドロップダウン・リストから、「外部カタログ」を選択します。
  4. 外部ソース・タイプを選択します。
    • Oracle Autonomous AI Lakehouseには、ウォレット・ファイルまたはインスタンス構成のいずれかを指定します。
    • Oracle Autonomous AI Transaction Processingには、ウォレット・ファイルまたはインスタンス構成のいずれかを指定します。
    • Oracle AI Databaseの場合は、ウォレット・ファイルまたはインスタンス構成のいずれかを指定します。
    • Kafkaには、ブートストラップ・サーバーを指定します。複数のサーバーはカンマで区切ります。(近日公開)
  5. ユーザー名およびパスワードを入力します。
  6. SSLはデフォルトで有効です。SSLを無効にする場合はボックスをクリアします。
  7. 「作成」をクリックします。
    外部ソースからデータを抽出している外部カタログには、回転する円のアイコンが表示されます。
    強調表示されたカタログの横に回転中の「進行中」アイコンが表示されたマスター・カタログ・ツリー・ビュー

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

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

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

  1. 左側のナビゲーション・ペインで「作成」をクリックし、「カタログ」を選択します。「マスター・カタログ」にナビゲートし、「カタログの作成」アイコン 「マスター・カタログへのカタログの作成」をクリックすることもできます。
  2. 「名前」および「説明」フィールドに入力します。
  3. 「カタログ・タイプ」ドロップダウン・リストから、「外部カタログ」を選択します。
  4. 外部ソース・タイプを選択します。
    • Oracle Autonomous AI Lakehouseには、ウォレット・ファイルまたはインスタンス構成のいずれかを指定します。
    • Oracle Autonomous AI Transaction Processingには、ウォレット・ファイルまたはインスタンス構成のいずれかを指定します。
    • Oracle AI Databaseの場合は、ウォレット・ファイルまたはインスタンス構成のいずれかを指定します。
    • Oracle Exadata Database Serviceには、ホスト、ポートおよびサービス名(SID)を指定します。
    • Snowflakeには、Snowflakeアカウント名、データベース名およびウェアハウスを指定します。認証方法の場合は、「キー・ペア」を選択し、秘密キー・ファイルおよび秘密キーのパスフレーズを指定します。
    • Azure SQLの場合は、ホスト、ポート、ユーザー名およびパスワードを指定します。オプションで、データベース名を含めることができます。
    • MySQLの場合は、ホスト、ポート、ユーザー名、およびパスワードを指定します。
    • Kafkaの場合は、ブートストラップ・サーバーを指定します。複数のサーバーはカンマで区切ります。(近日公開)
  5. ユーザー名およびパスワードを入力します。
  6. SSLはデフォルトで有効です。SSLを無効にする場合はボックスをクリアします。
  7. 「プライベート・ネットワークの有効化」を選択します。
  8. 必要なプライベート・ネットワーク構成を持つワークスペースを選択します。
    プライベート・ネットワーク用に構成されたワークスペースの設定の詳細は、「プライベート・ネットワーク・アクセスが有効なワークスペースの作成」を参照してください。
  9. 「作成」をクリックします。
    外部ソースからデータを抽出している外部カタログには、回転する円のアイコンが表示されます。
    強調表示されたカタログの横に回転中の「進行中」アイコンがあるマスター・カタログ・ツリー・ビュー

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

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

すべての外部カタログのリフレッシュをトリガーして、ソースからコンテンツを更新できます。

  1. ホーム・ページで、「マスター・カタログ」をクリックします。
  2. リフレッシュする外部カタログを選択します。
  3. 「ユーザー」アイコン 「リフレッシュ」をクリックします。
    「リフレッシュ」をクリックすると、ワークフローがバックグラウンドで開始され、外部カタログからメタデータを抽出および更新します。外部ソースからデータを抽出しているカタログには、回転する円のアイコンが表示されます。
    強調表示されたカタログの横に回転中の「進行中」アイコンがあるマスター・カタログ・ツリー・ビュー

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

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つのドット・アイコン 「アクション」をクリックし、「説明の編集」をクリックします。

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

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

外部カタログの名前変更

カタログのコンテンツまたは目的が変更されたときに、外部カタログの名前を変更して説明的なラベルを提供できます。

デフォルト・カタログの名前は変更できません。
  1. ホーム・ページで、「マスター・カタログ」をクリックします。
  2. カタログの横にあるアクションの3つのドット・アイコン 「アクション」をクリックし、「名前変更」をクリックします。

    「名前変更」が強調表示されたカタログの「処理」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()