已知問題(限制)

以下限制與已知問題適用於 IBM® watsonx.data.

watsonx.data 在 watsonx.data 精簡方案中,API 會返回空回應(sample_data 資料目錄)

以下 watsonx.data API 端點針對範例蜂巢目錄( IBM COS 儲存桶)會返回空回應:

Unity API

  • /api/2.1/unity-catalog/schemas/{catalog_name}.{schema_name}
  • /api/2.1/unity-catalog/tables?catalog_name={catalog_name}&schema_name={schema_name}

控制台 API

  • /v3/tables/{table_name}?catalog_name={catalog_name}&schema_name={schema_name}
  • /v3/columns?catalog={catalog_name}&schema={schema_name}
  • /v3/schemas/{schema_name}?catalog={catalog_name}
  • /v3/schemas?catalog={catalog_name}

使用私有端點時,Spark 應用程式不會顯示於控制台

當您啟用虛擬私有端點 (VPE) 以增強安全性時,提交至私有端點的 Spark 應用程式將不會顯示於控制 watsonx.data 台中。 應用程式清單僅在同時啟用公開端點時才會顯示。

解決方案: 您可透過 VPE 閘道從 VPC 內部存取應用程式清單。

ANALYZE TABLE 目錄 sample_data 中的表格操作不被支援

CPG 進出口功能不支援帳戶範圍的 watsonx.data 實例

對於目前屬於帳戶範圍的 watsonx.data 實例,通用政策閘道(CPG)的匯入/匯出功能不被支援。 任何嘗試使用這些功能的操作都將失敗,並返回以下錯誤訊息: import/export features will not be supported for this instance: <instanceID>.

Spark 無法 4.0 在 ANSI 模式下執行 SQL 查詢(使用提供的設定)

在啟用 ANSI 模式 4.0 (spark.sql.ansi.enabled=true) 的 Spark 上執行 SQL 查詢時,ExtendedAnalysisException 由於 ANSI 模式的嚴格類型強制執行,查詢會因類型不符而失敗。 此問題即使在使用於 Spark 上可正常運作的 3.5 設定時仍會發生。

解決方案: 透過設定參數啟用非ANSI模式:"spark.sql.ansi.enabled": "false"

在 Spark 中停用 4.0 ANSI 模式,以防止 TPC-DS 查詢失敗

當您使用 Spark 4.0 作為執行階段時,ANSI 模式預設為啟用狀態。 這會導致執行標準 TPC-DS 查詢時發生故障。 為避免這些問題,應在 Spark 4.0 範本中停用 ANSI 模式,方法是設定相關配置 spark.sql.ansi.enabled": "false"。 此設定可確保 ANSI 模式不會自動啟用,並防止查詢不相容的問題發生。

啟用時 Context-based restrictions 發生存取失敗

Context-based restrictions 啟用時,攝取工作會失敗。 此外,其他需要元儲存庫管理員權限的操作也會失敗。 當 CBR 停用時,吞吐量與管理層級操作皆能如預期運作。

watsonx.data 助理操作因 context-based restrictions 網路政策失敗

當嘗試透過助理擷取某個 watsonx.data 實例的資訊時,若在帳戶層級啟用了驗證 watsonx.data 功能 Context-based restrictions,該請求可能會因驗證錯誤而失敗。 此情況發生於助理 watsonx.data 未被納入政策 Context-based restrictions 中定義的受信任IP位址清單時,導致API請求遭到拒絕。

當 Hadoop Ranger 服務整合時,在 Presto 和 Spark 查詢中發生存取遭拒錯誤

在整合 Hadoop Ranger 服務時,使用 引擎 watsonx.dataPresto 執行的 SQL 查詢會因錯誤 而失敗。Access denied: USE 此情況發生於執行諸如透過查詢工作區在預設目錄中建立架構等操作時。 此外,若已配置 Presto Ranger 服務,且查詢是透過 Spark 引擎執行,則查詢同樣會因相同錯誤而失敗。

在 MongoDB Connector 中未能使用 WHERE 子句過濾 DATE、TIME、TIMESTAMP 及 VARBINARY 欄位

在使用 連接器 PrestoMongoDB 時,若查詢包含 子句 WHERE,且篩選條件涉及下列資料類型的欄位,則無法返回記錄:

  • 日期
  • 時間
  • 時間戳記
  • Varbinary

此限制影響到依賴底層 WHERE clause ROW FILTER 進行評估的治理規則等情境。

輕量方案不支援手動同步查詢優化器元數據儲存庫

對於 的精簡版實例,watsonx.data 在版本 中不支援手動同步功能,且查詢優化器的 2.3 初始元資料儲存庫同步亦不被支援。 若初始同步失敗,客戶查詢將回退至原生優化器,Presto 而非查詢優化器。 如需更多資訊,請參閱 手動同步查詢優化器與元資料儲存庫

Chat with Document 螢幕連線至 watsonx.data 出錯

當嘗試從 Chat with Document 畫面 (特別是 ca-tor 區域) 建立連線至 watsonx.data 時,使用者會遇到下列錯誤:Error: A data source of the specified type [null] does not exist.

停用 ACL UI 並不會阻止在 Presto

透過控制台使用者介面停用 GenAI ACL 並不能完全防止 Presto 中的行層篩選。 發生這種情況的原因是 Presto 會透過查詢 GET /acl_storage API 是否存在 ACL 儲存桶來檢查 ACL 狀態。 如果水桶仍在註冊中,即使使用者介面中的 ACL 已經關閉,篩選仍會繼續。

解決方案: 透過使用者介面停用 ACL 後,請從 watsonx.data 手動刪除 ACL 桶。

在具有相同模式欄位的資料表間進行未經授權的欄位存取

如果使用者被授予對某一模式中特定資料表的存取權,如果這些資料表有相同的列名,則他們意外地能夠檢視和查詢同一模式中其他資料表的列。 即使使用者對其他資料表沒有明確的存取政策,也會發生這種情況。

EXT_METASTORE_SYNC 因目錄名稱不匹配而失敗

使用者可能不知道元資料中儲存的目錄名稱。 因此,如果 watsonx.data UI 中使用的目錄名稱與元資料檔案中指定的目錄名稱不同,EXT_METASTORE_SYNC 將會失敗,無法使用查詢優化器。

解決方法: 使用與元資料檔案中相同的名稱建立目錄。

Node 引擎重新啟動時的指派延遲

在重新啟動階段,由於節點可用性有限,引擎無法指派節點。 因此,模式建立會大幅延遲。

Spark History UI 中的儲存詳細資訊頁面載入為空白

Spark History UI 中的儲存詳細資訊頁面無法呈現任何內容。 當頁面載入時,它會保持完全空白,讓使用者無法檢視或管理儲存相關資訊。 若要在事件日誌中擷取詳細的儲存 (區塊更新) 資訊,您必須在提交應用程式時啟用設定 spark.eventLog.logBlockUpdates.enabled。 如需詳細資訊,請參閱 使用原生 Spark 引擎提交 Spark 應用程式存取 Spark 歷史伺服器

當檔案名稱包含空格或特殊字符時,Spark 應用程式無法執行

如果您上傳的 Python (.py) 檔案名稱含有空格或特殊字符 (例如:wordcount (1).py),Spark 工作會執行失敗。 系統不會處理這樣的檔案名稱,導致工作提交時發生以下錯誤。

/opt/ibm/entrypoint/start-spark-job-wrapper.sh: eval: line 293: syntax error near unexpected token (' /opt/ibm/entrypoint/start-spark-job-wrapper.sh: eval: line 293: spark-submit --master spark://spark-master-headless-b778988f-24ff-49c2-aa05-a56f3c204f0b:7077 s3a://sparkqa-donotdelete-pr-7aqi2frntm5vlz/spark_jobs/uploads/8f472c67-23aa-4f94-8ed6-c9f2dbe13e20/application/wordcount (1).py '/opt/ibm/spark/examples/src/main/resources/people.txt''

解決方法: 為避免此問題,您必須在上傳之前重新命名 Python 應用程式檔案,以移除空格和特殊字符。 例如,將 wordcount (1).py 重命名為 wordcount_1.py

由於 IBM watsonx.data 中的標頭大小限制,長 SQL 查詢的預備語句會失敗。Presto

當透過 Flight service 或 JDBC 用戶端 (例如 DBeaver) 執行長而複雜的 SQL 查詢時,預備語句可能會失敗。 此故障是由於超出 Presto 引擎中預設的 HTTP 標頭大小限制所導致的內部伺服器錯誤。 當使用大小約為 14KB 的 SQL 查詢來豐富度量資料資產時,此問題可在 Watsonx BI 中重複發生。

這並非 PrestoDB 本身的限制,而是 JDBC PreparedStatement API 工作方式的結果。 當用戶端或 BI 工具使用 PreparedStatement, 時,SQL 文字和參數元資料會被序列化,並作為 HTTP 請求標頭的一部分傳送到 Presto 協調器。 此行為是 JDBC 驅動程式實作的標準,並非 Presto 的特定查詢引擎。

解決方法: 若要緩解此問題,請根據您的工作負載考慮下列方法:

  1. 增加標頭大小限制

    使用下列參數更新 Presto 引擎組態,以支援更大的查詢:

    • http-server.max-request-header-size=128kB
    • http-server.max-response-header-size=128kB 這些屬性已列入白名單,並可使用自訂 API 進行調整。

    目前的預設值是根據典型的查詢大小設定的。 不過,依預設增加請求標頭大小限制可能會帶來某些取捨。 較大的標頭大小會增加遭受拒絕服務攻擊的風險,因為它允許在每次請求 DoS 中傳送更多資料。 此外,每個 HTTP 請求都會消耗更多記憶體,在高並發情況下這可能成為顯著問題。 因此,應根據您的環境和查詢模式謹慎調整這些值。

  2. **避免在大型查詢中使用 PreparedStatement **

    如果您的 BI 工具或工作負載傾向於產生非常大的 SQL 查詢,請考慮停用 PreparedStatement 並改用 createStatement。 這可避免透過 HTTP 標頭傳輸大量 SQL 負載,也是一種更具擴充性的方法。

Milvus 而 Presto 編輯詳細資料頁面在建立後最初會顯示內部伺服器錯誤

在建立引擎後不久,嘗試編輯 Milvus 和 Presto 引擎詳細資料頁面上的描述時,您可能會遇到 500 內部伺服器錯誤。 這個問題通常發生在最初的幾次嘗試中,因為系統會因為快取而延遲政策傳播。

政策更新延遲

CPG 和 AMS 政策更新可能需要較長時間才能反映到整個系統中。 此延遲是由於新的快取方法所致,是預期的行為。

外部 Spark 引擎無法連線至 Amazon S3 儲存空間

當使用外部 Spark 引擎存取儲存在已設定 IAM 角色驗證的 amazon_s3 桶中的資料時,引擎無法連線或擷取資料。

Spark 中 MOR 到 COW 表的轉換失敗 4.0

Spark 4.0 不支援 MOR 至 COW 表轉換的 spark 應用程式。

解決方法: 使用 Spark 版本 3.4 或 3.5 執行 MOR 到 COW 表的轉換。

由於 hive 目錄列名稱不匹配,使用 Presto (C++) 引擎的預覽儀表板會顯示空值

Presto (C++) 引擎會導致預覽儀表板顯示某些資料表的所有空值,這是由於 Parquet 檔案中的列名與 Hive 目錄設定不匹配所致。

解決方法: 套用下列會話屬性:

   set session [catalog_name].file_column_names_read_as_lower_case=true;

Manta 應用程式無法在 Spark 上執行 4.0

Manta 應用程式 (Iceberg, Hudi, Hive, Delta) 在 Spark 4.0 上提交時會執行失敗。

解決方案: 使用其他可用的 Spark 版本執行 Manta 應用程式。

在支援 FIPS 的群集中,箭頭連接器的測試連接失敗

由於加密限制,在支援 FIPS 的群集中部署時,箭頭連接器的測試連接可能會失敗。 這會影響連線器,例如 Greenplum、MariaDB, 和 Salesforce,這些連線器在連線驗證時依賴與 FIPS 模式不相容的底層資料來源或函式庫。

Apache Kafka 在啟用 FIPS 的群集中測試連線失敗

對於 Apache Kafka,除非 SASL_MECHANISM 明確設定為 " SCRAM-SHA-512 ",否則測試連線可能會失敗。 此機制與 FIPS 要求相容,並應用於確保在支援 FIPS 的環境中成功進行連線測試。

透過 Ingestion UI 建立模式與資料表時,不支援特殊字元

透過 Ingestion UI 建立模式和資料表時,不支援下列特殊字符: %+ 這些限制是由於底層儲存引擎的限制而強制執行的,例如 Hive、Delta 和 Hudi。 雖然資料管理員頁面可能允許更廣泛的特殊字符集 (例如 !, @, #, &, _, -, =, +, ], }, <, 和 >),但擷取流程會強制執行更嚴格的驗證,以確保不同服務間的相容性。

更新過期的儲存或資料庫憑證後,查詢執行暫時失敗

更新與 Presto 引擎關聯的儲存或資料庫資源的過期憑證後,查詢工作區中的查詢執行會失敗約 30 到 40 秒。 延遲之後,查詢會成功執行,不會再發生其他問題。

統計同步作業在執行過程中停滯不前

統計同步作業可能會在執行期間因未知狀況而卡住。 當發生這種情況時,使用者可以檢查日誌,在最佳化程式或 Db2 中檢視工作狀態。 如果工作狀態為 NOTRECEIVEDNOTRUNUNKNOWN,使用者必須手動強制刪除工作。

刪除卡住的工作後:

  • 如果目前有工作在 Queued(已排程)清單中,第一個工作會自動移至 Active(作用中 )並開始執行。
  • 如果沒有工作在佇列中,使用者可以手動提交新工作。

狀態定義:

  • NOTRECEIVED(無接收 ):系統未收到給定任務 ID 的呼叫。
  • NOTRUN:調度器因錯誤而無法調用任務的程序。
  • UNKNOWN:任務開始執行,但由於意外狀況,排程器未能記錄結果。

相容性問題:Spark 無法讀取使用 Parquet 的 presto 所寫的冰山表 V2

當 Presto 明確設定為使用 Parquet V2 writer 時,Spark 無法讀取由 Presto 插入到冰山表的資料。 出現這個問題的原因是 Spark 不支援某些 Parquet V2 編碼的向量讀取,例如 DELTA_BINARY_PACKED。 典型的錯誤訊息是 UnsupportedOperationException: Cannot support vectorized reads for column [CustomerID] optional int32 CustomerID = 1 with encoding DELTA_BINARY_PACKED. Disable vectorized reads to read this table/file at org.apache.iceberg.arrow.vectorized.parquet.VectorizedPageIterator.initDataReader(VectorizedPageIterator.java:98)

解決方法: 如果您在讀取資料表時遇到此錯誤,尤其是使用 watsonx.data 早期版本建立的資料表,請設定下列 Spark 設定。

   config("spark.sql.iceberg.vectorization.enabled", "false")

查詢 tpcdstpch 連接器的角色相關 information_schema 資料表的限制

使用者在查詢 tpcdstpch 連接器的角色相關 information_schema 表時,會遇到錯誤。 對 Presto 中的這些連線器來說,這種行為是故意的,也是預期的,因為 tpcdstpch 是基準連線器,不支援基於角色的安全功能。

解決方法: 為了避免錯誤,請避免查詢 tpcdstpch 連接器的角色相關資訊_schema 表 (例如 applicable_roles、enabled_roles 及 roles)。

使用有效的模式、資料表及列名稱,以確保查詢的可靠性

在查詢工作區建立資料表時,避免在模式、資料表或列名稱中使用前導或後續空格。 雖然建立可能會成功,但在查詢或互動時,這些額外的空間可能會導致問題。 為確保順暢且可靠的操作,請務必使用乾淨且沒有額外空格的名稱。

中 BLOB 和 CLOB 支援的限制 Presto

Presto 可以從連接器讀取或寫入包含有 和 欄位的資料表。BLOB CLOB 但是,它不支持在 CREATE TABLE 语句中使用 BLOBCLOB 作为列数据类型。

延遲執行存取控制政策 Milvus

在 Milvus 中,存取控制政策的建立與執行之間會有延遲。 此延遲發生的原因是政策同步化所需的時間。

SQL 檢視無法跨引擎查詢 (Spark 和 Presto )

具有 Hive 冰山目錄的引擎所建立的 SQL 檢視可被其他引擎辨識,但無法跨引擎查詢,因為一個引擎無法理解另一個引擎的 SQL 方言。

Tiny Presto API 回應中遺失驅動程式和資源群組詳細資訊

GET presto_engines API 目前在查詢 Tiny Presto 引擎時,驅動程式和 resource_groups 會回傳 null,因為新架構省略了 get_presto_engine 呼叫中的驅動程式詳細資訊;然而,現有使用者仍可透過 /driver_registration 端點存取驅動程式資訊。

無法刪除名稱中包含特殊字符的欄位中的資料

無法刪除名稱中包含特殊字符的欄位中的資料,因為在 WHERE 子句中的欄位名稱不支援特殊字符。

長時間使用 watsonx.data Assistant 後產生錯誤

長時間使用 watsonx.data Assistant 後,會產生以下錯誤。 There is an error with the message you just sent, but feel free to ask me something else.

解決方法: 重新載入瀏覽器。

移除現有註冊後無法重新註冊 SAL

非試用者在移除現有註冊後無法重新註冊 SAL。

解決方法: 請完成以下步驟:

  1. 在 IAM 存取雲端帳戶中為使用者新增存取權限。

  2. 使用以下 SAL API 刪除此整合。

    curl -X 'DELETE' \ 'https://api.dataplatform.cloud.ibm.com/semantic_automation/v1/wxd_integrations/<wxd-instance-id>' \ -H 'accept: */*' \ -H 'Authorization: Bearer <iam_bearer_token>'

  3. 使用下列 API 檢查整合的狀態,並確認已刪除整合。

    curl -X 'GET' \ 'https://api.dataplatform.cloud.ibm.com/semantic_automation/v1/wxd_integrations/<wxd-instance-id>' \ -H 'accept: */*' \ -H 'Authorization: Bearer <iam_bearer_token>'

  4. 重新註冊 SAL。

在查詢工作區建立物化表成功,但在使用相同權限的 Spark 記事本中卻失敗

嘗試使用查詢工作區中的 SQL 查詢建立物化表時,操作成功。 使用者對預設 Iceberg 目錄的資料桶和適當的存取政策(插入、更新、選取、刪除)有讀取權限。 然而,當使用 watsonx.data Spark 模板在 Spark 記事本中執行相同的 SQL 語句時,會產生以下錯誤 the action is not allowed

解決方法:Create access control policy 頁面中,定義冰山桶儲存的 L3 政策。

QHMM 桶僅在引擎處於運轉狀態時與引擎關聯

如果您在佈建狀態時將 QHMM 目錄與引擎關聯,系統會傳回錯誤,指出該目錄不存在於可維護性側邊。 然而,當引擎處於運轉狀態時,系統會自動關聯 QHMM 目錄。

使用者可能會遇到「因憑證無效而測試連線失敗」錯誤

對於某些資料來源,即使資料來源憑證正確,使用者也可能會遇到「因憑證無效而測試連線失敗」的錯誤。 儘管憑證有效,仍可能發生此問題,導致資料來源的連線測試無法成功。

解決方法: 如果遇到此故障錯誤,您必須聯絡 IBM 支援。

在 Iceberg 資料表中缺乏欄位 NDV 統計資料會導致非最佳查詢計劃

在目前的實作中,對於 Presto ( Java ) 和 Presto (C++) 內的 Iceberg 表,列 NDV(Number of Distinct Values)統計資料在 MDS 中可用時,不會被使用。 NDV 對於產生最佳查詢計劃非常重要。 如果沒有這些功能,效能可能會大幅降低。

解決方法: 對於非分割的資料表,請使用 SET SESSION <iceberg_catalog>.hive_statistics_merge_strategy='USE_NULLS_FRACTION_AND_NDV';

此變通辦法並不適用於已分割的資料表。

虛擬私人網路設定限制

外部引擎不支援私有端點,例如 IBM Db2 Warehouse, IBM Netezza,和 IBM Analytics Engine (Spark)。

HDFS 不支援透過 CPDCTL 新增水桶

cpdctl wx-data 外掛程式目前不支援新增 HDFS 資料桶。

IBM watsonx.data Presto Software Hub 5.1.1 及之後的連線器無法連線至 IBM watsonx.data 雲端實例

IBM watsonx.data Presto 由於 520 Cloudflare 錯誤,連接器無法連接到 IBM watsonx.data 範例。 這個問題會在同時多次呼叫 GET /engines API 時發生,尤其是在 watsonx.data 範例有大量政策時。

修改 Spark 引擎 home bucket 的憑證可能會中斷資料和作業

在佈建過程中更新已指定為 Spark 引擎主儲存桶的儲存桶的存取憑證,可能會導致資料存取問題和作業故障。

元存放管理員和元存放檢視器無法檢視模式和資料表的詳細資訊

在查詢工作區和資料管理員中擁有元資料庫管理員和元資料庫檢視員權限的使用者,無法檢視模式和資料表的詳細資料,除非已為模式和資料表定義檢視原則。

模式演進方案在 Presto (C++) 中失敗

當您刪除和/或新增資料表列時,查詢可能會失敗。 例如,請參閱下面的語句順序,之後,對該表的查詢就會失敗。

   create table ice.s3.tessch.12 (age int, name varchar(25), place varchar(25)
   insert into ice.s3.tessch.t12 values (35, 'ken', 'paris')
   alter table ice.s3.tessch.t12 drop column age
   select * from ice.s3.tessch.t12
   alter table ice.s3.tessch.t8 add column place varchar(25)

解決方法: 對於 PARQUET,在會話中執行以下命令:

   set session <catalog-name>.parquet_use_column_names=true;

以實際使用的目錄取代 <catalog-name>

或在目錄內容中設定 hive.parquet.use-column-names=true。 對於 ORC,在目錄內容中設定 hive.orc.use-column-names=true

在 Oracle 資料庫中使用 WE8ISO8859P9 字元集的大寫土耳其字元 İ 的問題 ( ORA-00911 錯誤)

在使用 WE8ISO8859P9 字元集的 Oracle 資料庫中,在混合大小寫特徵旗標 OFF(預設)模式下不支援大寫土耳其字元 İ,導致 ORA-00911: 無效字元錯誤。

解決方法: 將混合大小寫功能旗標設定為 ON。

目錄的預設 information_schema 檢視會列出其他目錄的模式和資料表

如果使用者擁有一個以上的目錄,預設的 information_schema 檢視也會顯示其他目錄的模式和資料表,不論與引擎關聯的目錄為何。

Hive 當 file-column-names-read-as-lower-case 設定為 true 時,無法辨識大寫全角字母的外部欄名

當 presto Worker 目錄屬性 file-column-names-read-as-lower-case 設定為 true 時,會將 ASCII 大寫字母的欄位名稱轉換為 ASCII 小寫字母。 因此,列名下包含大寫全角字元的資料將無法辨識,並顯示為 "null"。

在 Write/Delete/Update 作業期間,由於 ADLS 簽署過期,導致 Spark 作業失敗

Spark job 在 ADLS Gen1 儲存中執行 Write/Delete/Update 作業時,會因為以下錯誤而失敗。 出現這種情況的原因是 ADLS 簽名在過程中途過期。 java.io.IOException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature

解決方法: 將 ADLS 簽章過期時間設定為較大的值。 設定 spark.hadoop.spark.hadoop.wxd.cas.sas.expiry.period 屬性,以控制 ADLS 簽章的過期時間。 將預設值從 300s 更新為 43200s。

Presto CLI 密碼大小限制

Presto CLI 支援的最大密碼大小為 1 KB (1024 位元組)。 如果密碼超過這個大小,系統就無法在密碼欄位中接受它,而必須將它匯出。

在 watsonx.data 網頁主控台升級期間,ORC 表不支援 timestamptz 資料類型。

包含連字詞或空格的資料庫名稱無法由 Python 記事本中的 Spark 引擎查詢,即使已加入適當的 Spark 存取控制延伸。

從 IBM 刪除語意自動化層整合後,仍保留業務術語 watsonx.data

在 watsonx.data 中為語意自動化層 (SAL) 整合匯入 IBM Knowledge Catalog 的業務術語不會在整合刪除時移除。 如果隨後啟用新的 SAL 整合,並再次上傳相同或類似的業務術語,這可能會導致重複的業務術語。

解決方法: 為避免重複的業務術語,群集管理員或最初建立 SAL 註冊的使用者必須手動刪除所有為 SAL 整合匯入的業務術語。

Apache Phoenix 表上的 EXISTS 子句在執行查詢時產生 Exeception 錯誤

涉及 Apache Phoenix 表上 EXISTS 子句的查詢可能會意外失敗,即使所引用的列是有效的。 出現這種情況是因為 Apache Phoenix 對 EXISTS 子句的詮釋有限制,尤其是在查詢結構含糊不清或錯位的情況下。

解決方法: 若要解決此限制,請使用下列策略之一:

  • 在子查詢和主查詢之間建立清楚的關係。 在子查詢中引入篩選條件,在子查詢和主查詢之間建立有意義的關係。 例如,在子查詢中,where department_id_bigint IS NOT NULL。 欲了解更多資訊,請參閱以下範例:

    SELECT DISTINCT t1.first_name_varchar, t2.performance_rating_real, t1.team_head_varchar
    FROM phoenix.tm_lh_engine.employee t1, phoenix.tm_lh_engine.departments t2
    WHERE EXISTS (
       SELECT 1
       FROM phoenix.tm_lh_engine.departments
       WHERE department_id_bigint IS NOT NULL
    )
    
  • 透過在子查詢中明確連結表,在所涉及的表之間建立明確的關係。 這可確保子查詢與上下文相關,並解決執行問題。 例如,在子查詢中,where t3.department_id_bigint = t2.department_id_bigint。 欲了解更多資訊,請參閱以下範例:

    SELECT DISTINCT t1.first_name_varchar, t2.performance_rating_real, t1.team_head_varchar
    FROM phoenix.tm_lh_engine.employee t1, phoenix.tm_lh_engine.departments t2
    WHERE EXISTS (
       SELECT 1
       FROM phoenix.tm_lh_engine.departments t3
       WHERE t3.department_id_bigint = t2.department_id_bigint
    )
    

Hive Catalog 不支援 CSV 格式建立表格 int 型別列

Hive 目錄不支援 CSV 格式建立表格 int 類型欄位。 顯示下列錯誤:

presto> create table  hive_data.hive_schema.intcsv ( type int ) with ( format = 'CSV' ) ;
Query 20241017_021409_00059_fmcyt failed: Hive CSV storage format only supports VARCHAR (unbounded). Unsupported columns: type integer

解決方法:對 Hive 目錄使用以下選項:

  • 在 varchar 中建立表格。
  • 建立將列轉換為其原始資料類型的視圖。

CSV 和 Parquet 檔案攝取行為不一致

儘管設計規格規定 CSV 檔案只能攝取到從 CSV 檔案建立的表中,而 Parquet 檔案只能攝取到從 Parquet 檔案建立的表中,但使用者能夠將 CSV 檔案攝取到的實際行為存在差異。鑲木地板桌子。 如果 CSV 或 parquet 檔案的架構或格式與目標表的預期結構不一致,這可能會導致意外結果、資料品質問題或效能問題。

透過 UI 和引擎重新啟動問題導致Presto資源群組中的檔案關聯無效

當透過watsonx.data UI 與Presto資源群組中的引擎關聯無效檔案時,引擎將經歷重新啟動。 但是,使用者介面可能會錯誤地顯示引擎正在使用新指派的檔案。

解決方法: 如果您發現新檔案與watsonx.data環境不關聯,請聯絡IBM支援人員以取得進一步協助。

Hive和 Iceberg 中的時間資料類型支持

Hive:Hive目錄本身不支援時間資料型別。

Iceberg:Iceberg 確實支援時間資料類型。

解決方法: 要在 Iceberg 表中正確處理時間資料,hive.parquet-batch-read-optimization-enabled 屬性必須設定為 false

具有不同架構的檔案會導致空值

watsonx.data現在支援提取具有不同架構的支援檔案類型。 但是,當這些文件中的列具有不同的架構時,這些列中的值將設為 null。

在模式、資料表及儲存位置建立時,不支援特殊字元

建立模式、資料表和儲存位置時,不支援下列特殊字元:

Schemas ( Hive 和 Iceberg):$, ^, +, ?, *, {, [, (, ),和 /

表 ( Hive ):$, ^, +, ?, *, {, [, (, ), /, }, ",和 '(在以特殊字符 @ 開頭的模式名稱中創建表會導致錯誤)。

表格 (冰山):$, ^, +, ?, *, {, [, (, ), /, @, }, ",和 '

存儲位置:$, ^, +, ?, *, {, [, (, }, @, ",和 '

建議不要在資料表、欄位和模式名稱中使用特殊字元,例如問號 (?)、連字符號 (-)、星號 (*) 或分隔符號,例如 \r、 \n 和 \t。 雖然支援這些特殊字元,而且可以建立資料表、欄位和模式,但使用這些特殊字元可能會在執行 INSERT 指令或套用存取政策時產生問題。

為確保體驗順暢,請遵循以下清單:

  • 模式名稱可以包含字母、數字或 !, #, &, ], }, <, >, =, %,和 @ 之一。
  • 表名稱可以包含字母、數字或 !, #, &, ], }, <, >, =; 之一。
  • 欄位可以包含字母、數字 !, #, &, [, ], < >, _, :,和 @ 之一。

ALTER TABLE Spark作業提交操作失敗

建立架構、表格然後嘗試 ALTER TABLE 操作的 Spark 作業可能會因權限不足而遇到 authz.AccessControlException 問題。

發生這種情況的原因是,即使架構和表格建立成功,作業也會在使用新建立的架構和表格詳細資訊更新元儲存資料之前嘗試執行 ALTER TABLE 操作。

解決方法: 為了防止存取被拒絕錯誤,您必須在涉及在相同Python腳本中建立新架構或表格的每個操作之間提供時間延遲。

解決方法: 您可以停用 DAS 或確保您的儲存桶或物件儲存配置了 HTTPS 端點。

試閱讀 Parquet v2表透過Presto(C++) 導致錯誤

當您嘗試透過Presto (C++) 讀取透過watsonx.data中的資料管理器建立的 Parquet v2表時,會出現下列錯誤:

Error in ZlibDecompressionStream::Next

**解決方法:**Presto(C++) 目前不支援讀取 Parquet v2表。 您必須將資料複製到新表中v1格式相容閱讀使用Presto(C++)。

  1. 將會話屬性設定為PARQUET_1_0:

    set session <catalog_name>.parquet_writer_version = 'PARQUET_1_0';
    
  2. 執行以下命令將資料複製到新表中:

    create table <catalog name>.<schema name>.<table name> as (select * from <originaltablename>;
    

Spark 擷取目前不支援分區表列名稱的特殊字符,例如引號、反引號和括號。

嘗試使用查詢歷史記錄和監控管理(QHMM)相關表Presto(C++) 引擎可能會遇到錯誤

當您嘗試使用下列命令查詢 QHMM 相關表格時Presto(C++) 引擎,您可能會因不支援的檔案格式而遇到錯誤。 Presto (C++) 僅支援 Parquet v1格式。 你不能使用Presto(C++) 查詢其他格式的資料或表格。

解決方法: 您可以切換使用Presto(Java)引擎來查詢QHMM相關表。

飛行伺服器出現伺服器並發限制達到錯誤

使用航班伺服器執行查詢時,您可能會遇到達到伺服器並發限制錯誤。 當伺服器由於大量並發請求而導致記憶體使用率較高時,就會發生這種情況。

解決方法: 增加飛行吊艙的數量或重組以簡化查詢以減少子查詢的數量。 根據系統負載和可用資源調整副本數量。

使用以下命令來擴展 pod 的數量 wdp-connect-flight 部署:

oc scale deployment wdp-connect-flight --replicas=<number of replicas>

例如,如果您需要將 Pod 數量擴展到 36 個,請執行以下命令:

oc scale deployment wdp-connect-flight --replicas=36

公曆日期的錯誤識別Presto和Hive鑲木地板桌

Presto處理之前的歷史日期時出現問題 0200-01-01,特別是當它們儲存在Hive表格格式為 Parquet。 出現此問題的原因是公曆和儒略曆之間的轉換,該轉換是在 1582-10-15。 此截止日期之前的日期被誤解Presto。

SHOW COLUMNS 輸出中的列長度資訊不完整

SHOW COLUMNS 查詢於Presto目前提供有關列的信息,包括名稱、資料類型、附加詳細資訊(額外)和註釋。 此問題強調現有功能缺乏有關基於字元的資料類型(CHAR 和 VARCHAR)長度的詳細資訊。 雖然某些連接器會返回表建立期間定義的實際長度,但其他連接器可能提供預設值或完全不提供任何資訊。

為了解決此限制,已將三個新列新增至 SHOW COLUMNS 輸出:

  • Scale:適用於DECIMAL資料型別,表示小數點後的位數。

  • 精確度:適用於數值資料類型,指定總位數。 (預設值:10)

  • 長度:適用於 CHAR 和 VARCHAR 資料型別,表示允許的最大字元數。

目前的限制:

  • 報告的長度 Length 由於連接器限制,列可能並不總是反映表架構中定義的實際大小。

  • 不提供長度資訊的連接器將顯示預設值或空值,具體取決於連接器。

查詢最佳化器中 OPT_SORTHEAP 的計算錯誤

由於查詢優化器的配置設定中的值計算錯誤 OPT_SORTHEAP,查詢優化器的效能可能會受到影響。

解決方法: 解決計算錯誤 OPT_SORTHEAP 在查詢最佳化器中,完成以下步驟將設定更新為 OPT_SORTHEAP= <initial_value>OPT_SORTHEAP <initial_value>/20

  1. 設定 PROJECT_CPD_INSTANCE 環境變數指向所在的命名空間watsonx.data已安裝。
export PROJECT_CPD_INSTANCE=<wxd_namespace
  1. 編輯值 OPT_SORTHEAPOPT_SORTHEAP <initial_value>/20 透過運行以下命令。
oc edit db2uinstance lakehouse-oaas -n $PROJECT_CPD_INSTANCE
  1. 等待一段時間 STATE 改為 Ready 為了 lakehouse-oaas 並運行以下命令。
watch "oc get db2uinstance  -n $PROJECT_CPD_INSTANCE"

限制 -Presto(C++)

  • Presto(C++) 引擎目前不支援資料庫目錄。
  • Parquet 是唯一支援的檔案格式。
  • Hive支援連接器。
  • 預設 Iceberg 表僅支援 Parquet v1格式的讀取。
  • 支援TPC-H/TPC-DS查詢。
  • DELETE FROMCALL SQL 不支援聲明。
  • START,COMMIT,和 ROLLBACK 不支援交易。
  • 資料類型 CHAR,TIME,和 TIME WITH TIMEZONE 不支援。 這些資料類型包含在 VARCHAR,TIMESTAMP,和 TIMESTAMP WITH TIMEZONE
    • IPADDRESS,IPPREFIX,UUID,kHYPERLOGLOG,P4HYPERLOGLOG,QDIGEST,和 TDIGEST 不支援。
    • VARCHAR 僅支援有限的長度。Varchar(n) 不支援最大長度限制。
    • TIMETIME WITH TIMEZONE 得到社區發展的支持。
    • TIMESTAMP 無法讀取 Parquet 檔案中的列。
  • 標量函數:
    • IPFunctions,QDigest,HyperLogLog,並且不支持地理空間國際化。
  • 聚合函數:
    • QDigest、分類指標和微分熵不受支持。
  • S3和S3支援相容的檔案系統(讀取和寫入)。

Presto(C++) 查詢外部分區表失敗

當您查詢外部表時 CHAR 資料類型列,查詢無法運作。 出現此問題是由於以下限制Presto(C++) 不支持 CHAR 資料類型。

解決方法:CHAR 資料類型列變更為 VARCHAR 資料類型。

在相同的中介 meta 儲存庫型錄中存取 Hive 和 Iceberg 表格

當使用AWS黏合資料目錄來管理包含 Iceberg 和Hive表,嘗試從以下位置存取 Iceberg 表Hive目錄給出,Not a Hive table 錯誤並嘗試訪問HiveIceberg 目錄中的表格給出,Not an Iceberg table 錯誤。

使用 ID 作為列名CassandraCREATE TABLE

在Cassandra,您不能建立包含名為 ID 當使用一個Cassandra連接器透過Presto。 這是因為 ID 是一個保留關鍵字Cassandra使用的驅動程式Presto,它會自動為每一行產生一個 UUID。 嘗試建立具有列名 ID 的表會導致錯誤訊息,指示重複的列聲明,如下所示: 重複列 id 表的聲明 tm_lakehouse_engine_ks.testtable12

解決方法: 透過Presto建立Cassandra表時避免使用 ID 作為列名稱。

使用者角色與 CreateCollectionMilvus 中 L3 策略建立集合失敗

用戶具有 User role 在 Milvus 中使用 pymilvus 建立集合時,使用 ORM ConnectionMilvusClient Connection 方法。

解決方法: 您必須遵循以下說明:

ORM Connection: 用戶需要兩者DescribeCollection和CreateCollection中授予的特權L3政策頁面。 授予權限時必須選擇資料庫中的所有集合 DescribeCollection 特權在L3透過 Web 控制台的策略。

MilvusClient Connection:僅有的 CreateCollection 特權是必要的L3政策頁面。 但是,第一次嘗試建立集合將會失敗。

  1. 跑過 create_collection 功能一次。
  2. 重新運行 create_collection 再次發揮作用。 這允許策略同步並且集合創建將會成功。

影響資料同步的特殊字元和混合大小寫

當在包含名稱中含有特殊字元或混合大小寫字母的表或架構的儲存桶之間同步資料時,您可能會遇到以下意外行為:

  • 具有某些特殊字元的表或模式 %,,,{,),(,@,$,[,: 將在同步期間完全跳過其資料。
  • 混合大小寫或大寫字母的表或架構將在同步前轉換為小寫。

暫行解決方法: 避免在表格及綱目名稱中使用特殊字元及大小寫混合。 將現有的表格和綱目重新命名為只使用支援的字元。

遺漏 Amazon S3 儲存體端點的資料驗證

目前,使用者介面 (UI) 不會對與 Amazon S3 儲存體類型相關聯的端點執行資料驗證。

WITH 子句和 USE catalog.schema 中的別名用法不正確

WITH 子句: 在 WITH 子句內參照資料時,請使用在其定義期間指派的確切別名。 使用不正確的別名會觸發下列錯誤訊息。

Schema must be specified when session schema is not set

USE catalog.schema 用法與 WITH 子句: 當使用 WITHUSE catalog.schema 指定表格時,別名不正確的查詢會導致下列錯誤。

Table does not exist

字串字面解釋Presto(Java)

Presto(Java),預設將字串文字解釋為 VARCHAR,這與許多其他將字串文字視為 CHAR 的資料庫系統不同。

在Presto(Java),字串比較是對字串中存在的實際字元執行的,不包括尾隨空格。 這可能會導致查詢在使用可能包含尾端空格的字串時傳回不正確的結果,因為在比較期間不會考量這些空格。

具有多個點的表格名稱

Presto(Java) 不支援建立或查詢名稱中包含三個或更多連續點的表名稱。 嘗試在查詢中參照這類表格可能會導致錯誤。

從 IAM 移除使用者之後,使用者仍會顯示在引擎的「存取控制」頁面中。

Teradata 連接器不支援 LDAP 鑑別。

watsonx.data Teradata 連接器目前不支援 LDAP (輕量型目錄存取通訊協定) 進行使用者鑑別。

暫行解決方法: 如果您遇到 502 錯誤,請在等待 1-5 秒之後重新載入 Spark 歷程使用者介面頁面。 這應該可以讓伺服器有足夠的時間開始運作。

Presto中的跨目錄架構建立例外狀況。

由Presto管理的Hive和 Iceberg 目錄的架構創建存在異常。 當對多個目錄(例如,一個 Iceberg 目錄和一個Hive目錄,或兩個 Iceberg 或Hive目錄)使用通用Hive Metastore 服務時,在一個目錄中建立模式可能會在錯誤的目錄中建立它。 如果在綱目建立期間指定的位置屬於非預期的型錄,則會發生此情況。

解決方法: 在Presto中使用 CREATE SCHEMA 語句時,您必須始終明確提供與目標目錄關聯的正確儲存路徑。 這可確保在想要的位置建立綱目。

Presto(Java)具有許多列且大小超過預設限制的查詢。

Presto(Java)涉及具有大量列(例如,每個表 1000 列或更多)的多個表的查詢 SELECT 子句可能會在所有部署環境中遇到效能問題。

max_reorder_joins 設定為 5 或更高 (預設逾時為 3 分鐘) 時,反覆運算最佳化工具逾時,並提供下列錯誤:

The optimizer exhausted the time limit of 180000 ms

對於超出預設值的查詢 max-task-update-size 限制 (16MB在Presto(Java)),你可能會觀察到 TaskUpdate size exceeding this limit error(limit具體值依實際查詢而定)。

暫行解決方法:

  • 您可以使用下列階段作業內容暫時停用 reorder_joins 規則,以增進查詢效能:

    set session reorder_joins = false;
    
  • 增加 max-task-update-size 值在 config.properties 如果問題涉及以下內容,則歸檔 TaskUpdate size exceeding the limit 錯誤並重新啟動Presto(Java)。

範例:

experimental.internal-communication.max-task-update-size=64MB

限制: 未記載的 Informix 資料庫中不支援交易。

在 watsonx.data中,嘗試對未記載的 Informix 資料庫執行具有交易式含意的查詢時,查詢會失敗。 這是因為根據設計,未記載的 Informix 資料庫不支援交易。

限制: Netezza Performance Server INSERT 陳述式限制。

Netezza Performance Server 目前不支援使用 VALUES 子句將多列直接插入表格中。 此功能僅限於單列插入。 如需 INSERT 陳述式的詳細資料,請參閱官方 Netezza Performance Server 文件

不支援將 VALUES 用於多列的下列範例:

INSERT INTO EMPLOYEE VALUES (3,'Roy',45,'IT','CityB'),(2,'Joe',45,'IT','CityC');

暫行解決方法: 使用具有 SELECT 及 UNION ALL 的子查詢來建構暫時結果集,並將它插入目標表格中。

INSERT INTO EMPLOYEE SELECT * FROM(SELECT 4,'Steve',35,'FIN','CityC' UNION ALL SELECT 5,'Paul',37,'OP','CityA') As temp;

問題:Milvus 對查詢沒有回應。

當嘗試載入超出可用記憶體容量的集合或分割區時,Milvus 可能不會回應查詢。 發生這種情況是因為 Milvus 內的所有搜尋和查詢操作都在記憶體中執行,需要在查詢之前載入整個集合或分區。

暫行解決方法:

  • 考慮 Milvus 部署的記憶體限制,並避免載入過大的集合或分區。

  • 如果 Milvus 對查詢沒有回應,請使用適當的 Milvus API 從記憶體中卸載或釋放一些集合。 使用 Python SDK的範例:collection.release()

問題:Milvus 中刪除後行計數不準確。

collection.num_entities 屬性可能無法反映刪除操作後 Milvus 集合中的實際行數。 此內容提供預估,且可能不會考量已刪除的實體。

若要取得精確的列計數,請對集合執行 count(*) 查詢。 即使在刪除之後,也會提供精確的計數。

Pymilvus 語法:

collection = pymilvus.Collection(...)
collection.query(expr='', fields=['count(*)'])

限制: 不受支援的 Db2 作業。

watsonx.data 目前不支援 Db2 直欄組織表格的 ALTER TABLE DROP COLUMN 作業。

預設情況下,Db2 實例會以列式組織格式建立表格。

watsonx.data 不支援在 Db2中建立列組織表格。

限制: 在 Elasticsearch中處理空值。

Elasticsearch 連接器需要明確定義欄位的索引對映,以在載入資料時處理空值。

限制: 使用 Elasticsearch載入巢狀 JSON。

Elasticsearch 連接器需要使用者明確地將巢狀 JSON 結構指定為類型 ROW 的陣列,以進行適當載入及查詢。 若要處理此類結構,請使用 UNNEST 作業。

限制:使用者可以為 IBM Cloud 中的單一 watsonx.data 實例建立 3 個 Milvus 服務實例。

問題:無法在Presto中建立視圖。

Presto將映射資料庫中的視圖描述為 TABLE 而不是 VIEW。 這對於連接到Presto引擎的JDBC程式來說是顯而易見的。

問題: 撤銷資料存取權時未從型錄存取控制中移除使用者。

當您使用「存取控制」畫面將使用者新增至資料控制原則,以將使用者存取權授與使用者時,會順利針對型錄列出該使用者。 在從「存取控制」頁面撤銷使用者存取權時,使用者會保留針對型錄列出的清單,並繼續具有使用者存取權。

問題:無法查看預期的目錄Presto(Java)。

具有管理員權限的使用者無法查看預期的內容Hive和PostgreSQL目錄來自Presto(Java)。

問題: 主控台使用者介面列出無效的使用者。

watsonx.data用戶(user1 ) 邀請新用戶 (user2 )透過使用管理存取和用戶螢幕 (管理 > 存取 (IAM) > 管理存取和用戶)並授予對角色(MetastoreAccess,查看者、操作員、編輯者、管理員)。 User2 可透過 user1的帳戶存取 watsonx.data 實例中的資源。 此外,透過使用「存取控制」畫面,將資料控制原則新增至資源層次的資料存取權授與 user2。 當 user1 從 user1的帳戶移除 user2 時,user2 仍會列在資源層次的 存取控制 標籤中。

問題: 無法檢視已建立的綱目。

當具有「使用者」角色及「建立」存取權 (使用者僅具有「建立」存取權) 的使用者新增至外部資料庫時,他們無法看到他們所建立的綱目。 雖然使用者可以建立綱目,但他們無法檢視綱目。 下列是系統回應:

presto:default> show schemas;
Schema
--------
(0 rows)

暫行解決方法: 為使用者建立的綱目提供 select 專用權。

問題: 查詢外部資料庫時拒絕存取。

當具有「使用者」角色及「建立」存取權 (使用者僅具有「建立」存取權) 的使用者新增至外部資料庫時,他們無法從他們所建立的表格執行選取查詢。 儘管用戶可以連接到Presto(Java)引擎並建立表格和模式,它們無法從表中查詢。 系統會顯示 Access Denied 訊息。

Query 20230608_132213_00042_wpmk2 failed: Access Denied: Cannot select from columns [id] in table or view tab_appiduser_01

暫行解決方法: 為使用者建立的表格提供 select 專用權。

問題: 在不同型錄下建立綱目。

綱目可在「冰山」和 Hive 型錄中使用。 在 Iceberg 型錄下建立綱目時,它會列在 Hive 型錄下,反之亦然。

問題:Presto(Java) 不支援刪除 Iceberg 表。

問題: Db2中的 DROP SCHEMA。

在 Db2中,綱目必須是空的,才能捨棄。 針對非空綱目起始 DROP SCHEMA 陳述式可能會導致 Db2 SQL 錯誤 SQLCODE=-478SQLSTATE=42893

問題: Db2局部支援 CREATE VIEW 陳述式。

Db2 連接器局部支援 CREATE VIEW 陳述式。 這Presto(Java) 支援的 SQL 語法不包括使用自訂列名稱(與表格列名稱不同)建立檢視。

問題: NPSaaS局部支援 CREATE VIEW 陳述式。

NPSaaS 連接器局部支援 CREATE VIEW 陳述式。 這Presto(Java) 支援的 SQL 語法不包括使用自訂列名稱(與表格列名稱不同)建立檢視。

問題:Presto(Java) 無法將該路徑識別為目錄。

當您建立一個新表時Presto(Java)Hive連接器使用一個S3來自外部位置的資料夾,Presto(Java) 無法將該路徑識別為目錄,並且可能會發生錯誤。

例如,使用 IBM Cloud UX 及 Aspera S3 主控台在儲存區中名為 dqmdbcertpq 的目標目錄 DBCERT/tbint 中建立客戶表格時,發生下列錯誤: External location must be a directory

CREATE TABLE "hive-beta"."dbcert"."tbint" (
RNUM int , CBINT bigint
) WITH (
format='PARQUET', external_location = 's3a://dqmdbcertpq/DBCERT/tbint'
);
Query 20230509_113537_00355_cn58z failed: External location must be a directory

檔案系統中的物件會儲存為物件及其路徑。 物件和路徑必須有相關聯的 meta 資料。 如果路徑沒有與元資料關聯,Presto(Java) 無法辨識該物件並回應該路徑不是目錄。

問題: 指派授與或撤銷專用權。

在下列情況下,透過存取原則將 授與撤銷 專用權指派給使用者不會如預期般運作:

  1. User_A 會新增儲存區及 Hive 型錄 (例如,useracat02)。

  2. User_A 會建立綱目及表格。

  3. User_B 和 User_C 會獲指派型錄的 使用者 角色。

  4. User_A 會將容許授與原則新增至 User_B。

  5. User_B 會連接至型錄,並執行 grant select 至 User_C。

    presto:default> grant select on useracat02.schema_test_01.tab_1 to "6ff74bf7-b71b-42f2-88d9-a98fdbaed304";
    
  6. 當 User_C 連接至型錄並在表格上執行 select 指令時,指令失敗並顯示拒絕存取訊息。

    presto:default> select * from useracat02.schema_test_01.tab_1;
    Query 20230612_073938_00132_hthnz failed: Access Denied: Cannot select from columns [name, id, salary, age] in table or view tab_1
    

問題: 建立不含位置的綱目。

當您建立不含位置的綱目時,它不會列在任何型錄的綱目清單中。 例如,如果您建立綱目時未指定儲存區的位置,則會在 HMS 中建立綱目,而不是在儲存區中。 當您嘗試建立同名的新綱目時,它會失敗並回應綱目已存在。

暫行解決方法: 指定建立綱目時儲存區的位置。

問題: 綱目及儲存區的唯一名稱。

無法使用相同名稱來建立綱目和儲存區。 例如,如果您在某個型錄中建立名為 "sales" 的綱目,則無法將相同名稱用於另一個型錄中的另一個綱目。 同樣地,如果您使用名稱 "salesbucket" 來登錄儲存區,則無法登錄另一個具有相同名稱的儲存區,即使該儲存區位於不同的物件儲存庫中。

暫行解決方法: 建立綱目及儲存區時使用唯一名稱。

問題: 正在建立目標表格的綱目。

如果目標表格不存在,您必須建立該綱目。

問題: 如果 CSV 檔包含不正確的記錄,汲取會失敗。

如果不符欄位大於表格定義,則 ibm-lh 工具不支援跳過 CSV 檔的錯誤記錄數上限。

問題: 正在使用路徑建立綱目位置。

建立綱目時,請使用下列其中一個位置選項:

  • 指向沒有尾端 / 的儲存區/子路徑的位置。
  • 指向具有尾端 / 的儲存區/子路徑的位置-建議進行更好的結構化。

雖然您只能使用指向儲存區的位置 (具有或不具有尾端 /),但可能會導致失敗。 因此,建議使用子路徑。

問題:Presto(Java)不支持 AS OF 與冰山桌。

Presto(Java)不支持 AS OF <time stamp> SELECT 查詢中的指令。

暫行解決方法: 呼叫 CALL iceberg_data_rollback_to_snapshot 以移至所需的時間戳記。

如果您使用具有時間戳記的 CALL iceberg_data_rollback_to_snapshot,則無法呼叫儲存程序以移至稍後的時間戳記。 使用 Spark SQL 作為替代方案。

問題: 只有建立者對 Apache Hive (API) 中的表格具有 DROP 存取權。

只有表格的建立者才能捨棄在 Apache Hive 型錄中建立的表格。 即使其他使用者對表格具有明確的 DROP 存取權,也無法捨棄表格。 他們會收到 Access Denied 訊息。

問題: watsonx.data不支援使用者提供的憑證。

目前,在新增資料庫連線、物件儲存庫儲存區或使用 ibm-lh 公用程式時,watsonx.data 中不支援使用者提供的憑證。

問題: 沒有要從檔案剖析的直欄錯誤。

當您嘗試使用 ibm-lh 工具從 AWS S3 汲取資料夾時,如果資料夾中沒有空檔案,可能會發生下列錯誤:

No columns to parse from file

暫行解決方法: 使用 aws s3 ls 指令,先列出儲存區內的資料夾。 如果未列出任何空檔案,請使用 aws s3 cp 指令將所有檔案複製到另一個資料夾。

目標表格名稱中的特殊字元可能會導致汲取失敗。

透過 Web 主控台吸收時,如果目標表格名稱中包含特殊字元,則汲取會失敗。

暫行解決方法: 您可以透過 Spark CLI 使用汲取來汲取資料。

局限性:Presto(Java)不支持 VARBINARY 資料類型。

目前版本Presto(Java) 不支援有長度的二進位字串。 在資料庫上執行 ALTER TABLE 陳述式會導致下列錯誤:

Unknown type 'varbinary(n)' for column 'testcolumn'

這是 Preso 的限制,而非 的限制 watsonx.data。

限制:在使用 VS Code 開發環境 - Spark Labs 時備份資料以防止資料遺失。

由於 Spark 實驗室本質上是短暫的,因此您必須定期備份儲存的數據,以防止升級或 Spark master 崩潰期間潛在的資料遺失。