外部目錄
外部目錄是資料源自 Oracle AI Data Platform Workbench 之外位置的目錄。
外部目錄會連線至 Oracle Autonomous AI Lakehouse 、Oracle AI Database 和 Oracle Autonomous AI Transaction Processing 等來源,以將資料擷取至您的 AI Data Platform Workbench。外部目錄會使用建立外部目錄時所提供的證明資料來查詢外部來源。如需資料來源的詳細資訊,請參閱內部來源。
例如,如果您為 Autonomous AI Lakehouse 執行個體建立外部目錄,其中所使用的 Autonomous AI Lakehouse 使用者憑證可以存取 schema1 而不能存取 schema2 ,則外部目錄中只會顯示 schema1 。具備外部目錄權限的使用者只能查詢 Autonomous AI Lakehouse 使用者可存取的綱要。
附註:
AI 資料平台工作台不支援從跨可插拔資料庫 (PDB) 或 Oracle 維護的綱要和表格共用的綱要和表格收集資料。Autonomous AI Lakehouse 和 Autonomous AI Transaction Processing 的必要權限
- CREATE SESSION 連線至資料庫
- 透過最低權限授權或專用讀取角色選取必要物件 (表格 / 視觀表 / 外部表格) 的存取權
- 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 Grammar 。
如何從外部目錄中的表格刪除資料
當目錄和表格設定為支援下推式 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()


