Synapse 實作成功方法:評估環境
注意
本文會透過設計 一系列文章,形成 Azure Synapse 實作成功的一部分 。 如需系列的概觀,請參閱 Azure Synapse 實作成功設計 。
實作 Azure Synapse Analytics 的第一個步驟是對您的環境進行評估。 評定可讓您收集現有環境、環境需求、專案需求、條件約束、時程表和痛點的所有可用資訊。 這項資訊將形成後續評估與檢查點活動的基礎。 在驗證和比較專案方案時,它會證明無價,因為它已規劃、設計和開發。 我們建議您投入大量時間收集所有資訊,並務必與相關群組進行必要的討論。 相關群組可以包括現有解決方案和環境的專案專案專案關係人、商務使用者、解決方案設計師和主題專家(SME)。
此評量將會成為協助您評估解決方案設計的指南,並提供明智的技術建議來實作 Azure Synapse。
工作負載評估
工作負載評估與環境、分析工作負載角色、ETL/ELT、網路和安全性、Azure 環境和資料耗用量有關。
環境
針對環境,請評估下列幾點。
- 描述您現有的分析工作負載:
- 工作負載是什麼(例如資料倉儲或巨量資料)?
- 此工作負載如何協助企業? 使用案例有哪些?
- 此分析平臺和潛在移轉的商業驅動因素為何?
- 收集現有架構、設計和實作選項的詳細資料。
- 收集所有現有上游和下游相依元件和取用者的詳細資料。
- 您要移轉現有的資料倉儲 (例如 Microsoft SQL Server、Microsoft Analytics Platform System (APS)、Netezza、Snowflake 或 Teradata?
- 您要移轉巨量資料平臺 (例如 Cloudera 或 Hortonworks)嗎?
- 收集目前分析環境的架構和資料流程圖。
- 您計劃性分析工作負載的資料來源位於何處(Azure、其他雲端提供者或內部部署)?
- 現有資料集的總大小為何(歷程記錄和累加式) ? 您資料集的目前成長率為何? 未來 2-5 年資料集的預測增長率為何?
- 您有現有的 Data Lake 嗎? 盡可能收集檔案類型的詳細資料(例如 Parquet 或 CSV)、檔案大小和安全性設定。
- 您是否有半結構化或非結構化資料可處理和分析?
- 描述資料處理的本質(批次或即時處理)。
- 您需要從關聯式資料、Data Lake 或其他來源進行互動式資料探索嗎?
- 您需要作業資料來源的即時資料分析和探索嗎?
- 目前環境中的痛點和限制為何?
- 您目前使用哪些原始檔控制和 DevOps 工具?
- 您是否有使用案例可建置混合式(雲端和內部部署)分析解決方案、僅限雲端或多雲端?
- 收集現有雲端環境的相關資訊。 它是單一雲端提供者還是多雲端提供者?
- 收集未來雲端環境的相關計畫。 它是否為單一雲端提供者或多雲端提供者?
- 現有環境中的 RPO/RTO/HA/SLA 需求為何?
- 規劃環境中的 RPO/RTO/HA/SLA 需求為何?
分析工作負載角色
針對分析工作負載角色,請評估下列幾點。
- 描述不同的角色(資料科學家、資料工程師、資料分析師和其他角色)。
- 描述這些角色的分析平臺存取控制需求。
- 識別負責布建計算資源並授與存取權的平臺擁有者。
- 描述不同資料角色目前如何共同作業。
- 同一個分析平臺上是否有多個小組共同作業? 如果是,這些小組的存取控制和隔離需求為何?
- 使用者用來與分析平臺互動的用戶端工具為何?
ETL/ELT、轉換和協調流程
針對 ETL/ELT、轉換和協調流程,請評估下列幾點。
- 您目前使用哪些工具進行資料擷取 (ETL 或 ELT)?
- 這些工具存在於現有環境(內部部署或雲端)中的位置?
- 您目前的資料載入和更新需求為何(即時、微批次、每小時、每日、每週或每月)?
- 描述每個層的轉換需求(巨量資料、資料湖、資料倉儲)。
- 目前轉換資料的程式設計方法為何(無程式碼、低程式碼、如 SQL、Python、Scala、C# 或其他程式設計)?
- 轉換資料的慣用計劃性程式設計方法為何(無程式碼、低程式碼、SQL、Python、Scala、C# 或其他程式設計)?
- 哪些工具目前用於資料協調流程,以自動化資料驅動程式?
- 您現有 ETL 的資料來源位於何處(Azure、其他雲端提供者或內部部署)?
- 需要與分析平臺整合的現有資料耗用量工具(報告、BI 工具、開放原始碼工具)為何?
- 需要與分析平臺整合的計畫資料耗用量工具(報告、BI 工具、開放原始碼工具)為何?
網路和安全性
針對網路和安全性,請評估下列幾點。
- 您的資料有哪些法規需求?
- 如果您的資料包含客戶內容、支付卡產業(PCI)或 1996 年健康保險可攜性和責任法案(HIPAA)資料,您的安全性群組是否已針對此資料認證 Azure? 如果是,則為哪一項 Azure 服務?
- 描述您的使用者授權和驗證需求。
- 是否有安全性問題可能會限制在實作期間存取資料?
- 開發和測試期間是否有可供使用的測試資料?
- 描述分析計算和儲存體的組織網路安全性需求(私人網路、公用網路或防火牆限制)。
- 描述用戶端工具存取分析計算和儲存體的網路安全性需求(對等互連網路、私人端點或其他)。
- 描述內部部署與 Azure 之間的目前網路設定(Azure ExpressRoute、站對站或其他)。
使用下列可能需求的檢查清單來引導您的評量。
- 資料保護:
- 傳輸中加密
- 待用加密(預設金鑰或客戶管理的金鑰)
- 資料探索與分類
- 存取控制:
- 物件層級安全性
- 資料列層級安全性
- 資料行層級安全性
- 動態資料遮罩
- 認證:
- SQL 登入
- Microsoft Entra ID
- Multi-factor authentication (MFA) (NIST - 回到基本概念:Multi-Factor Authentication (MFA))
- 網路安全性:
- 虛擬網路
- 防火牆
- Azure ExpressRoute
- 威脅防護:
- 威脅偵測
- 稽核
- 弱點評估
如需詳細資訊,請參閱 Azure Synapse Analytics 安全性白皮書 。
Azure 環境
針對 Azure 環境,評估下列幾點。
- 您目前正在使用 Azure 嗎? 它是否用於生產工作負載?
- 如果您使用 Azure,您正在使用哪些服務? 您使用哪些區域?
- 您是否使用 Azure ExpressRoute? 其頻寬為何?
- 您是否有預算核准來布建所需的 Azure 服務?
- 您目前如何布建和管理資源 (Azure Resource Manager (ARM) 或 Terraform?
- 您的關鍵小組是否熟悉 Synapse Analytics? 是否需要任何訓練?
資料耗用量
針對資料耗用量,請評估下列幾點。
- 描述您目前用來執行活動的方式和資料視覺效果,例如擷取、探索、準備和資料視覺效果。
- 識別您計畫用來執行活動的工具,例如內嵌、探索、準備和資料視覺效果。
- 哪些應用程式計畫與分析平臺互動(Microsoft Power BI、Microsoft Excel、Microsoft SQL Server Reporting Services、Tableau 或其他應用程式)?
- 識別所有資料取用者。
- 識別資料匯出和資料共用需求。
Azure Synapse 服務評量
Azure Synapse 服務評量與 Azure Synapse 內的服務有關。 Azure Synapse 具有下列用於計算和資料移動的元件:
- Synapse SQL: 適用于 Transact-SQL (T-SQL) 的分散式查詢系統,可啟用資料倉儲和資料虛擬化案例。 它也會擴充 T-SQL 來解決串流和機器學習 (ML) 案例。 Synapse SQL 同時 提供無 伺服器和 專用 資源模型。
- 無伺服器 SQL 集區: 分散式資料處理系統,專為大規模資料和計算函式所建置。 沒有基礎結構可設定或叢集來維護。 此服務適用于非計劃性或高載工作負載。 建議的案例包括直接在資料湖上的檔案、邏輯資料倉儲,以及原始資料的資料轉換上的快速資料探索。
- 專用 SQL 集區: 代表使用 Synapse SQL 時所布建的分析資源集合。 專用 SQL 集區的大小(先前稱為 SQL DW)取決於資料倉儲單位(DWU)。 此服務適用于具有可預測、高效能連續工作負載的資料儲存在 SQL 資料表中的資料的資料倉儲。
- Apache Spark 集區: 深入且順暢地整合 Apache Spark,這是最常用於資料準備、資料工程、ETL 和 ML 的巨量資料引擎開放原始碼。
- 資料整合管線: Azure Synapse 包含與 Azure Data Factory (ADF) 相同的資料整合引擎和體驗。 它們可讓您建立豐富的大規模 ETL 管線,而不需要離開 Azure Synapse。
若要協助判斷最佳的 SQL 集區類型(專用或無伺服器),請評估下列幾點。
- 您要為儲存在 SQL 資料表中的資料保留處理能力,以建置傳統的關聯式資料倉儲嗎?
- 您的使用案例需要可預測的效能嗎?
- 您要在資料湖之上建置邏輯資料倉儲嗎?
- 您要直接從 Data Lake 查詢資料嗎?
- 您要探索資料湖中的資料嗎?
下表比較兩個 Synapse SQL 集區類型。
比較 | 專用 SQL 集區 | 無伺服器 SQL 集區 |
---|---|---|
價值主張 | 資料倉儲的完整受控功能。 連續工作負載的可預測和高效能。 已針對受控(已載入)資料進行優化。 | 易於開始使用並探索 Data Lake 資料。 更適合臨機操作和間歇性工作負載的擁有權總成本 (TCO)。 已針對在 Data Lake 中查詢資料進行優化。 |
工作負載 | 適用于連續工作負載。 載入可提升效能,且複雜度更高。 每個 DWU 的收費(大小良好時)將是符合成本效益的。 | 適用于臨機操作或間歇性工作負載。 不需要載入資料,因此更容易啟動和執行。 每個使用量的收費將符合成本效益。 |
查詢效能 | 提供高並行和低延遲。 支援豐富的快取選項,包括具體化檢視。 使用工作負載管理 (WLM) 選擇取捨的能力。 | 不適用於儀表板查詢。 預計不會有毫秒回應時間。 它只適用于外部資料。 |
專用 SQL 集區評量
針對專用 SQL 集區評估,請評估下列平臺點。
- 目前的資料倉儲平臺為何(Microsoft SQL Server、Netezza、Teradata、Greenplum 或其他) ?
- 針對移轉工作負載,請針對每個環境判斷設備的製造和模型。 包含 CPU、GPU 和記憶體的詳細資料。
- 針對設備移轉,何時購買硬體? 設備是否已完全過時? 如果沒有,折舊何時結束? 還有多少資本支出?
- 是否有任何硬體和網路架構圖表?
- 規劃資料倉儲的資料來源位於何處(Azure、其他雲端提供者或內部部署)?
- 資料倉儲資料來源的資料裝載平臺為何(Microsoft SQL Server、Azure SQL 資料庫、DB2、Oracle、Azure Blob 儲存體、AWS、Hadoop 或其他專案?
- 是否有任何資料來源資料倉儲? 如果是的話,哪一個?
- 識別所有 ETL、ELT 和資料載入案例(批次視窗、串流、近乎即時)。 識別每個案例的現有服務等級協定(SLA),並在新環境中記錄預期的 SLA。
- 目前的資料倉儲大小為何?
- 專用 SQL 集區的目標資料整合長率為何?
- 描述您目前使用的環境(開發、測試或生產環境)。
- 目前有哪些工具可用於資料移動(ADF、Microsoft SQL Server Integration Services (SSIS)、robocopy、Informatica、SFTP 或其他工具?
- 您是否打算載入即時或近乎即時資料?
評估下列資料庫點。
- 每個資料倉儲中的物件數目為何(架構、資料表、檢視表、預存程式、函式)?
- 它是星狀架構、雪花式架構或其他設計嗎?
- 在記錄大小和數目方面,最大的資料表為何?
- 以資料行數目而言,最寬的資料表為何?
- 資料倉儲是否已設計資料模型? 這是 Kimball、Inmon 或星型架構設計嗎?
- 使用中緩時變維度 (SCD) 嗎? 如果是,哪一種類型?
- 語意層會使用關聯式資料超市或 Analysis Services(表格式或多維度)或其他產品來實作嗎?
- HA/RPO/RTO/資料封存需求為何?
- 區域複寫需求為何?
評估下列工作負載特性。
- 在尖峰時段 存取資料倉儲 的並行使用者或作業估計數目為何?
- 在離峰時段 存取資料倉儲 的並行使用者或作業估計數目為何?
- 是否有一段時間沒有使用者或工作?
- 您對於互動式查詢的查詢執行效能預期為何?
- 您每天/每週/每月資料載入或更新的資料載入效能預期為何?
- 報表和分析查詢的查詢執行預期為何?
- 最常執行的查詢有多複雜?
- 您的使用中資料集大小總計百分比為何?
- 大約預期要載入或更新、批次處理或報告、互動式查詢和分析處理的工作負載百分比為何?
- 識別取用模式和平臺的資料:
- 目前和計畫的報告方法和工具。
- 哪些應用程式或分析工具會存取資料倉儲?
- 並行查詢的數目?
- 在任何時間點的平均使用中查詢數目?
- 資料存取的本質為何(互動式、臨機操作、匯出或其他專案)?
- 資料角色及其資料需求的完整描述。
- 並行連線數目上限。
- 查詢效能 SLA 模式的方式如下:
- 儀表板使用者。
- 批次報告。
- ML 使用者。
- ETL 程式。
- 現有環境與新環境的安全性需求為何(資料列層級安全性、資料行層級安全性、存取控制、加密和其他專案)?
- 您是否需要整合 ML 模型評分與 T-SQL?
無伺服器 SQL 集區評量
Synapse 無伺服器 SQL 集區支援三個主要的使用案例。
- 基本探索和探索: 快速推斷 Data Lake 中各種格式的資料(Parquet、CSV、JSON),以便規劃如何從中擷取深入解析。
- 邏輯資料倉儲: 在未經處理或不同的資料上提供關聯式抽象概念,而不需要重新置放和轉換資料,即可讓您隨時檢視資料。
- 資料轉換: 使用 T-SQL 在湖中轉換資料的簡單、可調整且高效能的方式,因此可以饋送給 BI 和其他工具,或載入關聯式資料存放區(Synapse SQL 資料庫、Azure SQL 資料庫或其他工具)。
不同的資料角色可以受益于無伺服器 SQL 集區:
- 資料工程師 可以使用此服務來探索資料湖、轉換和準備資料,以及簡化其資料轉換管線。
- 資料科學家 可以透過 OPENROWSET 和自動架構推斷等功能,快速推斷資料湖中資料的內容和結構。
- 資料分析師 可以使用 熟悉的 T-SQL 語句或其最愛的查詢工具,探索資料科學家或資料工程師所建立的資料和 Spark 外部資料表 。
- BI 專業人員 可以在 Data Lake 和 Spark 資料表中的資料之上快速 建立 Power BI 報表。
注意
T-SQL 語言同時用於專用 SQL 集區和無伺服器 SQL 集區,但支援的功能集有一些差異。 如需 Synapse SQL 中支援 T-SQL 功能的詳細資訊(專用和無伺服器),請參閱 Azure Synapse SQL 中支援的 Transact-SQL 功能。
針對無伺服器 SQL 集區評估,請評估下列幾點。
- 您是否有使用案例來探索和探索資料湖中的資料,方法是使用關聯式查詢 (T-SQL) ?
- 您是否有使用案例在資料湖之上建置邏輯資料倉儲?
- 識別是否有使用案例可轉換 Data Lake 中的資料,而不需先從 Data Lake 移動資料。
- 您的資料已在 Azure Data Lake 儲存體 (ADLS) 或 Azure Blob 儲存體中嗎?
- 如果您的資料已經在 ADLS 中,您在 Data Lake 中是否有良好的資料分割策略?
- 您有 Azure Cosmos DB 中的作業資料嗎? 您是否有 Azure Cosmos DB 即時分析的使用案例,而不會影響交易?
- 識別 Data Lake 中的檔案類型。
- 識別查詢效能 SLA。 您的使用案例需要可預測的效能和成本嗎?
- 您是否有非計劃性或高載 SQL 分析工作負載?
- 識別取用模式和平臺的資料:
- 目前和計畫的報告方法和工具。
- 哪些應用程式或分析工具會存取無伺服器 SQL 集區?
- 在任何時間點的平均使用中查詢數目。
- 資料存取的本質為何(互動式、臨機操作、匯出或其他專案)?
- 資料角色及其資料需求的完整描述。
- 並行連線數目上限。
- 查詢複雜度?
- 安全性需求(存取控制、加密和其他需求)為何?
- 必要的 T-SQL 功能(預存程式或函式)為何?
- 識別將傳送至無伺服器 SQL 集區和每個查詢結果集大小的查詢數目。
提示
如果您不熟悉無伺服器 SQL 集區,建議您使用 Azure Synapse 無伺服器 SQL 集 區學習路徑來建 置資料分析解決方案。
Spark 集區評量
Azure Synapse 中的 Spark 集區可啟用下列主要案例。
- 資料工程/資料準備: Apache Spark 包含許多語言功能,可支援準備和處理大量資料。 準備和處理可讓資料更有價值,並讓其他 Azure Synapse 服務取用資料。 它可透過多種語言啟用 (C#、Scala、PySpark、Spark SQL),以及使用提供的程式庫來處理和連線。
- 機器學習: Apache Spark 隨附 MLlib ,這是建置在 Spark 之上的 ML 程式庫,您可以從 Spark 集區使用。 Spark 集區也包含 Anaconda,這是 Python 散發套件,其中包含各種資料科學套件,包括 ML。 此外,Synapse 上的 Apache Spark 為 Microsoft 機器學習 提供預先安裝的程式庫 ,這是容錯、彈性和 RESTful ML 架構。 結合筆記本的內建支援時,您有豐富的環境可建立 ML 應用程式。
注意
如需詳細資訊,請參閱 Azure Synapse Analytics 中的 Apache Spark。
此外,Azure Synapse 與 Linux Foundation Delta Lake 相容。 Delta Lake 是開放原始碼儲存層,可將 ACID (不可部分完成性、一致性、隔離和持久性)交易帶入 Apache Spark 和巨量資料工作負載。 如需詳細資訊,請參閱 什麼是 Delta Lake 。
針對 Spark 集區評估,請評估下列幾點。
- 識別需要資料工程或資料準備的工作負載。
- 清楚定義轉換的類型。
- 識別您是否有非結構化資料要處理。
- 當您從現有的 Spark/Hadoop 工作負載移轉時:
- 什麼是現有的巨量資料平臺(Cloudera、Hortonworks、雲端服務或其他)?
- 如果是從內部部署移轉,硬體已過時或授權已過期? 如果沒有,何時會發生折舊或到期?
- 什麼是現有的叢集類型?
- 必要的程式庫和 Spark 版本為何?
- 這是 Hadoop 移轉至 Spark 嗎?
- 目前或慣用的程式設計語言為何?
- 工作負載類型為何(巨量資料、ML 或其他)?
- 現有和規劃的用戶端工具和報告平臺為何?
- 安全性需求為何?
- 是否有任何目前的痛點和限制?
- 您打算使用或目前正在使用 Delta Lake 嗎?
- 您目前如何管理套件?
- 識別必要的計算叢集類型。
- 識別是否需要叢集自訂。
提示
如果您不熟悉 Spark 集區,建議您使用 Azure Synapse Apache Spark 集 區執行資料工程學習路徑。
下一步
在 Azure Synapse 成功設計 系列中的下一篇文章 中,瞭解如何評估 Synapse 工作區設計,並驗證其是否符合指導方針和需求。