表格
使用表格來定義資料的結構。
您可以將新資料載入表格或參照現有位置中的資料。您可以透過建立表格權限,在表格上定義微點存取控制權限。如需詳細資訊,請參閱表格權限。
若要共用表格,請參閱共用資料。
表格可以是受管理或外部表格。
受管理表格
受管理表格會定義儲存於 AI 資料平台內且只能由 AI 資料平台使用者存取之資料的結構。
刪除受管理表格時,會刪除表格定義和表格資料。
外部表格
外部表格會定義儲存於非由 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 原則。
支援的表格格式
表格可以使用 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 以及 Iceberg。
支援的操作
針對受管理表格分析下列綱要發展作業:
| 操作 | 差異 | Parquet | Avro | Iceberg |
|---|---|---|---|---|
| 重新命名表格 | 支援的 | 支援的 | 支援的 | 支援的 |
| 新增資料欄 | 支援的 | 支援的 | 支援的 | 支援的 |
| 刪除資料欄 | 支援的 | 不支援 | 不支援 | 支援的 |
| 變更或重新命名資料欄 | 支援的 | 不支援 | 不支援 | 支援的 |
| 取代欄 | 支援的 | 不支援 | 不支援 | 支援的 |
| 新增分割 | 分割區會在寫入資料時自動建立。您無法透過 DDL 新增個別分割區。 | 透過 DDL 支援 | 透過 DDL 支援 | 分割區會在寫入資料時自動建立。您無法透過 DDL 新增個別分割區。您可以使用 ALTER TABLE ... ADD PARTITION FIELD 將欄位新增至分割區設定。
|
| 刪除分割區 | 移除相關資料並執行 VACUUM。
|
支援的 | 支援的 | 您無法透過 DDL 刪除個別分割區。請改為刪除相關資料列。您可以使用 ALTER TABLE ... DROP PARTITION FIELD 從分割區設定中移除欄位。
|
| 變更資料類型 | 可能需要 CTAS 或覆寫綱要解決方法。 | 不支援 | 不支援 | 僅支援相容類型的促銷,例如 INT 至 BIGINT、FLOAT to DOUBLE,以及透過 ALTER TABLE 增加小數精確度。不支援縮小與不相容的轉換。
|
檢視表格詳細資訊
您可以檢視表格的詳細資訊,以複查其組態和描述資料。
表格的詳細資訊頁籤會顯示表格索引鍵、類型和格式,以及表格的建立時間和更新者。它也會顯示表格特性。
- 在左側導覽窗格中,按一下
主目錄。 - 在「主要」目錄樹狀結構中,展開包含您要檢視之表格的目錄和綱要,然後按一下表格。
- 在「表格」頁籤中,找到您的表格並按一下
動作,然後按一下檢視。 - 按一下詳細資訊。
重新命名資料表
您可以重新命名管理表格的內容或目的是否變更。
附註:
對 Oracle AI Data Platform 中的外部表格所做的編輯不會發送到 OCI Object Storage 中的遠端目錄。- 在左側導覽窗格中,按一下
主目錄。 - 在「主要」目錄樹狀結構中,展開包含您要編輯之表格的目錄和綱要,然後按一下表格。
- 在「表格」頁籤中,找到您的表格並按一下
動作,然後按一下重新命名。 - 編輯表格名稱,然後按 Enter 鍵。

