簡體   English   中英

Azure Data Studio:無法列出 _delta_log/*.*'

[英]Azure Data Studio: _delta_log/*.*' cannot be listed

我正在嘗試使用 Azure Synapse Serverless SQL 池查詢我的增量表。 使用 SQL 管理員憑據登錄 Azure Data Studio。

這是我嘗試進行的對table的簡單查詢:

SELECT
    TOP 100 *
FROM
    OPENROWSET(
        BULK 'https://(...).dfs.core.windows.net/(...)/table/',
        FORMAT = 'DELTA'
    ) AS [result]

我收到錯誤:

Content of directory on path 'https://.../table/_delta_log/*.*' cannot be listed.

如果我查詢任何其他表,例如table_copy我沒有錯誤。

我可以查詢我擁有的每張表,除了這張table

按照我找到的每一篇文檔和主題,嘗試了以下操作:

  • (IAM) 設置存儲 Blob 貢獻者、存儲 Blob 所有者、存儲隊列數據貢獻者和所有者
  • 在 ACL 中為托管身份 (Synapse Studio) 設置讀、寫、執行訪問和默認權限,
  • 將 ACL 傳播到每個孩子
  • 恢復了文件夾的默認權限
  • 制作表格的副本,刪除原始表格,然后再次覆蓋它(pyspark)
# Read original table
table_copy = spark.read.format("delta")
                  .option("recursiveFileLookup", "True")
                  .load(f"abfss://...@....dfs.core.windows.net/.../table/")

# Create a copy of it
table_copy.write.format('delta')
                .mode("overwrite")
                .option("overwriteSchema","true")
                .save(f"abfss://...@....dfs.core.windows.net/.../table_copy/")

# Remove original one
dbutils.fs.rm('abfss://...@....dfs.core.windows.net/.../table/',recurse=True)

# Overwrite it
table_copy.write.format('delta')
                .mode("overwrite")
                .option("overwriteSchema","true")
             .save(f"abfss://...@....dfs.core.windows.net/.../table/")

如果我將table復制到table_copy ,我可以讀取它。

請注意,在 Azure Synapse UI 中,我可以查詢該table 在它之外我不能。

似乎權限和防火牆設置設置正確。

您可以嘗試檢查表格的一件事是格式正確(Delta 格式)並且它具有正確的架構,還可以檢查目錄delta_log創建。

試試這個方法

首先,我沒有任何增量表。 所以我使用spark.read創建了示例 dataframe df在此處輸入圖像描述

然后,我使用abfss://<container_name>@<storage_account_name>...路徑將 dataframe df覆蓋為增量格式,並使用saveAsTable名稱並行創建了一個表: test_table

table_path = f"abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<folder>"

df.write.format("delta").mode("overwrite").option("path", table_path).saveAsTable("test_table")

在此處輸入圖像描述

您可以檢查test_tableabfss存儲位置。 我成功地得到了delta格式的數據。

在此處輸入圖像描述

在此處輸入圖像描述

另一種替代方法,您可以創建一個新的增量表並將數據從舊表復制到新的增量表。 您可以像這樣使用查詢:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM