表格

表格可定義資料的結構。

您可以將新資料載入表格或參照現有位置中的資料。您可以透過建立表格權限,在表格上定義微點存取控制權限。

表格可以是外部表格或受管理表格。

外部表格

外部表格會定義儲存於非由 Oracle AI Data Platform 管理之位置的資料結構。當您在 AI 資料平台中建立外部表格時,中繼資料生命週期由 AI 資料平台管理。當您刪除外部表格時,只會刪除表格定義。未刪除外部表格所參考的資料。

請確定您的使用者具有下列建立外部表格所需的 IAM 原則:

allow group <GroupName> to read buckets in compartment id <external-data-CompartmentId>
allow group <GroupName> to inspect objects in compartment id <external-data-CompartmentId>

外部表格需要額外的 IAM 原則。如需詳細資訊,請參閱 Oracle AI Data Platform 的 IAM 原則。

受管理表格

受管理表格會定義儲存於 AI 資料平台內的資料結構,且只能由 AI 資料平台使用者存取。

刪除受管理表格時,會刪除表格定義和表格資料。

支援的表格格式

表格可以使用 CSV、JSON、Avro、Parquet 和 ORC 等檔案格式,或是 Delta 和 Apache Iceberg 等交易表格格式。Iceberg 表格使用 Hadoop 目錄實作來管理 Oracle Cloud Infrastructure Object Storage 中的表格中繼資料。

格式 描述 使用情況
逗號分隔值 (CSV) 資料會以文字檔案形式儲存,並採用以指定列為基礎的檔案格式來建構資料。通常,檔案中的第一個資料列是標頭資料列,其中包含資料的資料欄名稱。 用來在系統之間交換表格式資料。檔案中的每個資料列都是表格中的一個資料列。
JavaScript 物件表示法 (JSON) 資料會以標準文字格式儲存,以根據 JavaScript 物件語法代表結構化資料。JSON 支援物件清單或階層結構。 用於串流應用程式。JSON 可簡化單一文件中具有複雜關係的相關資料儲存,並避免混亂清單轉換為關聯式資料模型。請注意,JSON 無法分割。
Avro 資料會以以資料列為基礎的二進位格式儲存,而綱要則以 JSON 格式儲存,以將檔案大小降到最低並提高效率。Avro 透過管理新增、遺漏和變更的欄位,提供可靠的綱要發展支援。這可讓舊軟體讀取新資料,以及讀取舊資料的新軟體。也稱為資料序列化系統。 用於資料儲存,因為 avro 檔案可分割且可壓縮。序列化以資料列為基礎的儲存體適用於繁重的寫入交易,例如將資料插入 AI 資料平台。當高速寫入期間綱要演進至關重要時,Avro 也是一個不錯的選擇。
Parquet 資料以分欄資料格式儲存,而且具有高度壓縮與可分割性。Parquet 已針對典範「多讀」(WORM) 進行最佳化。它會慢慢寫入,但速度非常快,尤其是在您只存取資料欄子集時。 用於解決大數據問題,因為壓縮演算法對於分欄資料格式的運作方式較佳。您可以使用各種格式儲存大數據,例如影像、影片、文件和結構化資料表。Parquet 在讀取部分資料時,是繁重工作負載的最佳選擇。例如,當資料集包含許多資料欄,但您只想要存取資料欄子集。當您依賴 Spark 或想要數個服務存取儲存在物件儲存中的相同資料時,這是理想的選擇。
最佳化資料列分欄 (ORC) 資料會以分欄格式儲存在單一檔案中的資料列集合中。 用於平行處理叢集的資料列集合。當讀取交易超過寫入交易或壓縮為優先順序時,這是理想的選擇。
差異 資料會以分欄格式儲存,並使用以 JSON 檔案為基礎的交易日誌來擴充 Parquet 資料檔,以進行 ACID 交易和可擴展的描述資料處理。 用於交易支援。
Iceberg 透過啟動多版本功能描述資料、資訊清單和快照來管理 Parquet 資料檔的開放式表格格式。AI 資料平台使用 Iceberg Hadoop 目錄實作。 用於 ACID 交易、並行讀取和寫入、綱要與分割區發展、差旅查詢、資料列層次更新、更新插入以及快照管理。

支援的資料類型

資料類型 描述
位元組類型 代表 1 位元組的正負號整數。數字的範圍從 -128 到 127。
簡短類型 代表 2 位元組簽署的整數。數字的範圍從 -32768 到 32767。
整數類型 代表 4 位元組的正負號整數。數字的範圍從 -2147483648 到 2147483647。
詳細類型 代表 8 位元組的正負號整數。數字的範圍從 -9223372036854775808 到 9223372036854775807。
浮動類型 代表 4 位元組的單一精確度浮點數。
雙倍型態 代表 8 位元組雙精度浮點數。
小數類型 代表任意精確度簽署的小數位數。由 java.math.BigDecimal 內部提供支援。BigDecimal 包含任意精確度的整數未調整值和 32 位元整數刻度。
字串類型 代表字元字串值。
VarcharType (長度) 具有長度限制的 StringType 變體。如果輸入字串超過長度限制,資料寫入將會失敗。
CharType (長度) 固定長度的 VarcharType (長度) 變化。CharType (n) 類型的讀取欄一律傳回長度為 n 的字串值。字元類型資料欄比較會將短整數填補至較長的長度。
二進位類型 代表位元組順序值。
布林類型 代表布林值。
日期類型 代表包含年度、月份及日期欄位值 (不含時區) 的值。
時間戳記類型 當地時區的時戳 (TIMESTAMP_LTZ)。它代表包含年度、月份、日期、小時、分鐘和秒等欄位值與階段作業當地時區的值。時間戳記值代表一個絕對時間點。
時間戳記 NTZType 不含時區的時戳 (TIMESTAMP_NTZ)。它代表包含 year、month、day、hour、min 和 second 欄位值的值。執行所有作業時,不會將任何時區納入考量。
YearMonthIntervalType (startField, endField) 代表一個月的間隔,由 MONTH 的連續子集、年內的月份 [0..11] 和年份組成,範圍為 [0..178956970]。
DayTimeIntervalType (startField, endField) 代表日時間間隔,由連續的 SECOND 子集組成,秒在分鐘內且可能為第二個 [0..59.99999]、MINUTE、小時內分鐘 [0..59]、小時內小時 [0..23] 和 DAY (範圍為 [0..106751991] 的天數)。
ArrayType (elementType, containsNull) 代表由 elementType 類型的一系列元素組成的值。containsNull 是用來指示 ArrayType 值中的元素是否可以有空值。
MapType (keyType, valueType, valueContainsNull) 代表由一組索引鍵 - 值組組成的值。關鍵碼的資料類型由 keyType 描述,值的資料類型由 valueType 描述。對於 MapType 值,不允許索引鍵具有空值。valueContainsNull 是用來指示 MapType 值的值是否可以為空值。
StructType (欄位) 以結構描述的一系列「結構欄位」(欄位) 來代表值。
StructField (name, dataType, nullable) 代表 StructType 中的欄位。欄位的名稱會以名稱表示。dataType 會指示欄位的資料類型。空值是用來指示這些欄位的值是否可以有空值。

限制

下列限制適用於 AI 資料平台中的表格:

  • 您無法在磁碟區內 / 磁碟區的任何資料檔或目錄上定義外部表格。
  • 您無法在儲存桶和 (或) 其目錄上定義已用於其他外部表格或外部磁碟區的外部表格
  • 檢視無法在「主要目錄」中檢視 / 列出。

綱要發展

Oracle AI Data Platform 中的結構描述發展,可讓擁有必要權限的使用者在記事本中使用 SQL 更新受管理表格。

當表格定義隨著時間變更以支援新的資料欄、移除的資料欄、重新命名的資料欄、分割區變更或表格重新命名,而不需要從頭重新建立資料集時,此功能非常有用。支援的格式包括 Parquet、Avro 和 Delta。

支援的操作

針對受管理表格分析下列綱要發展作業:
  • 重新命名表格:支援 Delta、Parquet、Avro 和 Iceberg
  • 新增資料欄:支援 Delta、Parquet、Avro 和 Iceberg
  • 置放資料欄:支援 Delta 和 Iceberg;Parquet 和 Avro 不支援
  • 更改或重新命名欄:支援 Delta 和 Iceberg;Parquet 和 Avro 不支援
  • 取代欄:支援 Delta 和 Iceberg
  • 新增分割區:透過 DDL 支援 Parquet 和 Avro。對於 Delta 和 Iceberg,會在寫入資料時自動建立分割區 。個別分割區不會透過 DDL 新增。Iceberg 支援使用 ALTER TABLE ... ADD PARTITION FIELD 為分割區規格新增欄位。
  • 刪除分割區:透過 DDL 支援 Parquet 和 Avro。若為差異,請移除相關資料並執行 VACUUM。Iceberg 不支援透過 DDL 刪除個別分割區;改為刪除相關列 。Iceberg 支援使用 ALTER TABLE ... DROP PARTITION FIELD 從分割區設定中移除欄位 。
  • 變更資料類型:Parquet 或 Avro 不支援。差異可能需要 CTAS 或覆寫綱要解決方法。Iceberg 僅支援相容類型的促銷,例如 INT 至 BIGINT、FLOAT to DOUBLE,以及透過 ALTER TABLE 增加小數精確度。不支援縮小或不相容的轉換。

建立受管理表格

您可以為您管理的綱要建立表格。

  1. 瀏覽至要為其建立表格的綱要。
  2. 選取表格頁籤。
  3. 按一下 「建立表格」圖示 建立表格。

    建立表格類型為「受管理」的表格匣

  4. 為您的表格類型選取受管理。
  5. 從受管理表格格式中選取表格的格式。
  6. 使用您的表格資料拖放檔案,或按一下以瀏覽至檔案位置。
  7. 提供表格的名稱和描述。
  8. 選擇性:若要新增分割區,請展開分割區索引鍵 (選擇性) 。按一下新增分割區,然後選取一個資料欄。
  9. 選擇性:若要將表格特性新增至資料目錄的描述資料,請展開表格特性 (選擇性) 。按一下新增特性,然後提供特性及其值。
  10. 按一下建立。

建立外部表

您可以在 OCI Object Storage 中建立包含資料的外部表格。

  1. 瀏覽至要為其建立表格的綱要。
  2. 選取表格頁籤。
  3. 按一下 「建立表格」圖示 建立表格。

    建立開啟表格頁面,其中已選取外部表格類型

  4. 為您的表格類型選取外部。
  5. 從 OCI Object Storage 中選取儲存資料的區間、儲存桶和資料夾。您可以選取的物件是根據登入使用者的 IAM 權限。
  6. 提供表格的名稱和描述。
  7. 選擇性:若要將表格特性新增至資料目錄的描述資料,請展開表格特性 (選擇性) 。按一下新增特性,然後提供特性及其值。
  8. 按一下建立。

編輯餐桌

您可以修改所管理表格的詳細資料。

附註:

在 Oracle AI Data Platform 中對外部目錄表格進行的編輯不會發送至遠端目錄。
  1. 瀏覽至您的綱要。
  2. 選取表格頁籤。
  3. 在要編輯的表格旁邊,按一下 動作 3 點圖示 動作。
    • 按一下重新命名,即可變更表格的名稱。輸入新名稱,然後按 Enter 。
    • 按一下編輯描述,即可變更表格的描述。提供新的描述,然後按一下儲存。

檢視表格詳細資訊

您可以檢視綱要中表格的詳細資訊。

  1. 瀏覽至您的綱要。按一下表格 (Tables) 頁籤。
  2. 按一下您要檢視其詳細資訊的磁碟區名稱。您也可以按一下磁碟區旁的 動作 3 點圖示 動作,然後按一下檢視。
  3. 按一下詳細資訊頁籤。

刪除表格

您可以從您管理的綱要中刪除表格。

  1. 瀏覽至要從中刪除表格的綱要。
  2. 按一下表格頁籤。
  3. 在要刪除的表格旁邊,按一下 動作 3 點圖示 動作,然後按一下刪除。
  4. 按一下「刪除」。