外部カタログ
外部カタログは、データがOracle AI Data Platform Workbenchの外部の場所から取得されるカタログです。
外部カタログは、Oracle Autonomous AI Lakehouse、Oracle AI Database、Oracle 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に必要な権限
- CREATE SESSION: データベースに接続する
- 最小権限の付与または専用の読取りロールによる、必要なオブジェクト(表/ビュー/外部表)に対するSELECTアクセス
- READ、WRITE on DIRECTORY DATA_PUMP_DIR
制限事項
UPDATE操作は、外部カタログではサポートされていません。検出および問合せアクセスには、外部カタログ表を使用します。
外部カタログの作成に使用された資格証明にDDL文を実行する権限がある場合でも、DDLはサポートされていません。
- 表名が大文字で指定されている場合、表は大文字を使用して作成され、Autonomous AI Lakehouseのデフォルトの大/小文字を区別しない動作に従います。
- 表名が小文字で指定されている場合、表はAutonomous AI Lakehouseで大/小文字が区別されるように作成されます。Autonomous AI Lakehouseで作成された表の列名は、常に大/小文字が区別されます。
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文法を参照してください。
外部カタログ構成の編集
外部カタログの構成を編集して、必要なパスワードを更新できます。
- ホーム・ページで、「マスター・カタログ」をクリックします。
- カタログの横にある
「アクション」をクリックし、「構成の編集」をクリックします。 - 外部カタログの新しいパスワードを入力し、「保存」をクリックします。
外部カタログの削除
外部カタログを削除して、ローカルに格納されているすべてのメタデータを削除できます。
外部カタログを削除すると、ローカルに格納されたメタデータのみが削除されます。データ・ソースのデータは影響を受けません。
外部カタログの表からデータを削除する方法
プッシュダウン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()


