知識庫

基於 Jet 的資料來源的資料和檔案大小限制


發佈時間 : 11 Apr 2017
上次修改日期 : 20 Jul 2023

問題

嘗試連接到基於 Microsoft Jet 資料庫引擎的資料來源(例如 Excel、Access 或純文字 (CSV) 檔案)時,您可能會遇到與 Jet 資料庫引擎中的限製相關的意外問題。 Microsoft Jet 技術在 8.2 之前針對 Excel 和 CSV 檔案與 Tableau Desktop 結合使用,或者在使用 Tableau Desktop 8.2 及更高版本的舊版連接器選項時使用。

已知資料或檔案大小限製

  • 使用大型 CSV 檔案可能會出現問題。
    並沒有明確或記錄在案的檔案大小限製,但作為一般準則,請使 CSV 檔案的大小小於 4GB。即使您能夠連線到大小超過 4GB 的 CSV 檔案,但在執行資料擷取時可能會導致錯誤,例如

    Query too complex(查詢太複杂)

    此外,試圖連接到大型 CSV 檔案時,即使您的電腦具有足夠的臨時磁盘空間,也可能出現錯誤顯示空間不足。

  • 表大小限製為 255 列(欄位)。大多數情況下,Jet 在達到 255 列的限製時會失敗。

  • 聯集包含超過 255 個列(欄位)。 如果聯集包含超過 255 個列,則會發生以下錯誤:

    Database error 0x800004005: Too many fields defined(資料庫錯誤 0x800004005:定義的欄位太多)

    附註: 如果在自訂 SQL 查詢中使用 UNION ALL 陳述式,則聯集可能會包含超過 255 個列。如果使用 UNION ALL,則聯集中的總列數等於每次使用 UNION ALL 陳述式時所計的列數。這可能會導致列數超過列限制。例如,假設您在 3 個表(每個表包含 102 個列)使用 UNION ALL。陳述式 SELECT * FROM "Table1" UNION ALL SELECT * FROM "Table2" UNION ALL SELECT * FROM“Table3”將計算為 306 個列,因此超過 Jet 列限制。

  • Access 資料來源中的 Memo 欄位可能在 255 個字元之後被截斷。

  • 表和檔案名稱限制為 64 個字元。如果表或檔案名稱超過 64 個字元的限制,則在從 Tableau 中連接到資料來源時,您可能會看到任何以下錯誤訊息
    • An error occurred while communicating with data source <data-source-file-name>…(與資料來源 <data-source-file-name> 通訊時出現錯誤…),另外建議您檢查權限。
    • <data-source-file-name> is not a valid file name….(<data-source-file-name> 不是有效的檔案名稱…。)檢查檔案名稱中是否有標點符號或其他無效字元。
    • Unable to open the text file….(無法開啟文字檔案…。)檢查檔案類型和您的權限。
    • The table <table-name> does not exist.(表 <table-name> 不存在。)
  • 欄位名稱限制為 255 個字元。雖然 Jet 可讀取名稱更長的欄位,但您對這些欄位執行的許多動作可能會導致「未知」錯誤。您建立擷取時,此限制還會導致欄位毫無預兆消失。

環境

  • Tableau Desktop
  • Windows
  • Excel
  • Access
  • 文字檔案 (CSV)

解決方法

解決方法

  • 如果遇到由列、表或檔案名稱超過限制字元數造成的問題,解決問題的最可靠方法是變更資料來源等級的名稱。
  • 如果您的資料來源包含超過 255 個列,或者資料來源檔案大小異常大,在先將表分隔為較小部分(每個部分包含少於 255 個列)的情況下,您或授權成功從 Tableau 中連接到資料來源。然後,在 Tableau 中使用多個表和加入進行連接。要達成這點,您需要將一個欄位用作加入的唯一金鑰。例如,建立轉換為字串資料類型的列號欄位。
附註: 即使借助此解決方案您可以連接到資料,但您選擇檢視資料時,仍可能遇到以下錯誤:
資料庫錯誤 0x800004005:定義的欄位過多。
  • 如果連線到表之後效能很低,可能需要進行資料擷取。
  • 如果出現錯誤,指出您的電腦沒有足夠的暫存磁碟空間,即使確實沒有足夠暫存磁碟空間,也要檢查 Windows Temp 資料夾中是否有名稱以 JET 開頭的 .tmp 檔案,且檔案大小是否為約 2GB。

原因

原因是 Jet 產生的暫存檔案的大小限制為 2GB。

其他資訊


以下各項中可能會出現 Jet 限製:
  • Tableau Desktop 8.1 及更低版本中創建的工作簿
  • Excel 和文字檔案資料來源
  • Microsoft Access 資料來源
  • 使用 Jet 既有連線的工作簿
為了避免 Jet 資料庫引擎限製,請考慮升級您的 Excel 或文字檔案資料來源。

附註: 導致「未知」錯誤的另一個原因是 Jet 驅動程式過時或損壞。

重要事項: 從 Tableau 2019.1 開始,您無法再建立新的舊版 Excel 或文字連接。使用這些舊版連接的現有工作簿會繼續運作至 2019.2 對舊版連接的所有支援都被移除為止。請參閱 「Tableau 社群」中的 舊版連接替代項 文件以瞭解使用舊版連接的替代項。


這篇文章是否解決了問題?