簡體   English   中英

Azure SQL 數據倉庫(突觸分析)Polybase 性能與 ORC 表

[英]Azure SQL Data Warehouse (Synapse Analytics) Polybase performances with ORC table

我在 Azure 存儲帳戶(帶 ADLS Gen2 功能)上使用 Spark(Databricks)生成了一個 ORC 表(使用 Snappy 壓縮)。 這個 ORC 代表大約 12 GB 的數據(12 億行)。 該表有 32 列。

生成后,我使用 Polybase 將該文件加載到 Synapse Analytics 表中的內部表中。

這是我使用不同配置的結果:

  • DW100c / smallrc = 3h52
  • DW400c / smallrc = 1h50
  • DW400c / xlargerc = 1h58
  • DW1000c / xlargerc = 0h50
  • DW1500c / xlargerc = 0h42

當我查看存儲帳戶入口/出口時,我看到了幾分鍾內的活動(可能是為了在 Synapse 節點之間復制 ORC 文件)......然后 Synapse 資源開始受到壓力。 我看到了一段時間的 CPU 活動,然后 memory 緩慢增加,緩慢,...

這里 memory(紅色)和 CPU max %(藍色)示例:

在此處輸入圖像描述

我需要再次擴大規模嗎? 我認為這不是網絡吞吐量的 pb。 或者可能是配置問題? 關於 Polybase,我不明白為什么這么慢。 Polybase 有望快速攝取 TB 的 ORC 數據!

BR,A.

編輯:DWU 使用

在此處輸入圖像描述

您可以嘗試幾件事。 Azure Synapse Analytics(以前稱為 Azure SQL Data Warehosue)具有與 DWU 綁定的讀取器和寫入器的概念。 我找不到該文檔的當前版本,但我擁有的一些舊 gen1 文檔表明 DWU1500 有 120 個閱讀器。 這強烈建議您應該將一個大文件拆分為多個文件。

我會做一些實驗,從 10 個文件開始,即 10 個文件,每個文件 1.2GB,直到找到適合工作負載的最佳設置。 我會說我沒有用 ORC 文件對此進行過測試,我不清楚 ORC 格式是否已經固有分區。 試試看。

您也可以嘗試 CTAS(如果您還沒有使用它)。 這也將利用 Synapse 的並行工作能力。

目前還有一個名為COPY INTO的新功能正在預覽中。 根據文檔,它與 ORC 文件兼容,並且不需要您拆分它們:

COPY 命令加載 Parquet 或 ORC 文件的文件拆分指南是什么? 無需拆分 Parquet 和 ORC 文件,因為 COPY 命令會自動拆分文件。 Azure 存儲帳戶中的 Parquet 和 ORC 文件應為 256MB 或更大以獲得最佳性能。

https://docs.microsoft.com/en-us/sql/t-sql/statements/copy-into-transact-sql?view=azure-sqldw-latest#what-is-the-file-splitting-guidance- for-the-copy-command-loading-parquet-or-orc-files

COPY INTO test_orc
FROM 'https://yourAccount.blob.core.windows.net/yourBlobcontainer/folder1/*.orc'
WITH (
    FILE_FORMAT = yourFileFormat
    CREDENTIAL=(IDENTITY= 'Shared Access Signature', SECRET='<Your_SAS_Token>')
)

通過查看門戶中的 DWU 使用情況來確定您是否受 DWU 限制 - 查看它是否已被最大化/扁平化,我猜它不是。

暫無
暫無

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

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