- 數(shù)據(jù)湖漫游指南
- 文件大小和文件數(shù)
- 文件格式
- 分區(qū)方案
- 使用查詢加速
- 我如何管理對(duì)我的數(shù)據(jù)的訪問(wèn)?
- 我選擇什么數(shù)據(jù)格式?
- 如何管理我的數(shù)據(jù)湖成本?
- 如何監(jiān)控我的數(shù)據(jù)湖?
- ADLS Gen2 何時(shí)是您數(shù)據(jù)湖的正確選擇?
- 設(shè)計(jì)數(shù)據(jù)湖的關(guān)鍵考慮因素
- 術(shù)語(yǔ)
- 組織和管理數(shù)據(jù)湖中的數(shù)據(jù)
- 我想要集中式還是聯(lián)合式數(shù)據(jù)湖實(shí)施?
- 如何組織我的數(shù)據(jù)?
- 優(yōu)化數(shù)據(jù)湖以獲得更好的規(guī)模和性能
- 推薦閱讀
- 問(wèn)題、意見或反饋?
Azure Data Lake Storage Gen2 (ADLS Gen2) 是用于大數(shù)據(jù)分析的高度可擴(kuò)展且經(jīng)濟(jì)高效的數(shù)據(jù)湖解決方案。隨著我們繼續(xù)與客戶合作,利用 ADLS Gen2 從他們的數(shù)據(jù)中發(fā)掘關(guān)鍵洞察,我們已經(jīng)確定了一些關(guān)鍵模式和注意事項(xiàng),可幫助他們?cè)诖笠?guī)模大數(shù)據(jù)平臺(tái)架構(gòu)中有效利用 ADLS Gen2。
本文檔記錄了我們?cè)谂c客戶合作的基礎(chǔ)上學(xué)到的這些注意事項(xiàng)和最佳實(shí)踐。就本文檔而言,我們將重點(diǎn)介紹我們的大型企業(yè)客戶在 Azure 上大量使用的現(xiàn)代數(shù)據(jù)倉(cāng)庫(kù)模式,包括我們的解決方案,例如 Azure Synapse Analytics。
我們將改進(jìn)此文檔以在未來(lái)的迭代中包含更多分析模式。
重要提示:請(qǐng)將此文檔的內(nèi)容視為指導(dǎo)和最佳實(shí)踐,以幫助您做出架構(gòu)和實(shí)施決策。這不是官方的 HOW-TO 文檔。
ADLS Gen2 何時(shí)是您數(shù)據(jù)湖的正確選擇?#
企業(yè)數(shù)據(jù)湖旨在成為大數(shù)據(jù)平臺(tái)中使用的非結(jié)構(gòu)化、半結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)的中央存儲(chǔ)庫(kù)。企業(yè)數(shù)據(jù)湖的目標(biāo)是消除數(shù)據(jù)孤島(數(shù)據(jù)只能由組織的一部分訪問(wèn))并促進(jìn)單一存儲(chǔ)層,以適應(yīng)組織的各種數(shù)據(jù)需求有關(guān)選擇正確的更多信息存儲(chǔ)解決方案,請(qǐng)?jiān)L問(wèn)在 Azure 中選擇大數(shù)據(jù)存儲(chǔ)技術(shù)一文。
出現(xiàn)的一個(gè)常見問(wèn)題是何時(shí)使用數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)湖。我們敦促您將數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)視為互補(bǔ)的解決方案,它們可以協(xié)同工作,幫助您從數(shù)據(jù)中獲得關(guān)鍵見解。數(shù)據(jù)湖是存儲(chǔ)來(lái)自各種來(lái)源的所有類型數(shù)據(jù)的存儲(chǔ)庫(kù)。自然形式的數(shù)據(jù)存儲(chǔ)為原始數(shù)據(jù),并在此原始數(shù)據(jù)上應(yīng)用模式和轉(zhuǎn)換,以根據(jù)業(yè)務(wù)試圖回答的關(guān)鍵問(wèn)題獲得有價(jià)值的業(yè)務(wù)洞察力。數(shù)據(jù)倉(cāng)庫(kù)是高度結(jié)構(gòu)化的模式化數(shù)據(jù)的存儲(chǔ),這些數(shù)據(jù)通常被組織和處理以獲得非常具體的見解。例如。零售客戶可以將過(guò)去 5 年的銷售數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)湖中,此外,他們可以處理來(lái)自社交媒體的數(shù)據(jù),從零售分析解決方案中提取消費(fèi)和情報(bào)的新趨勢(shì),并利用所有這些作為輸入一起生成一個(gè)數(shù)據(jù)集,可用于預(yù)測(cè)明年的銷售目標(biāo)。然后,他們可以將高度結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中,BI 分析師可以在其中構(gòu)建目標(biāo)銷售預(yù)測(cè)。此外,他們可以使用數(shù)據(jù)湖中相同的銷售數(shù)據(jù)和社交媒體趨勢(shì)來(lái)構(gòu)建智能機(jī)器學(xué)習(xí)模型,以在其網(wǎng)站上進(jìn)行個(gè)性化推薦。
ADLS Gen2 是適用于大數(shù)據(jù)分析工作負(fù)載的企業(yè)級(jí)超大規(guī)模數(shù)據(jù)存儲(chǔ)庫(kù)。ADLS Gen2 通過(guò)分層命名空間提供更快的性能和 Hadoop 兼容訪問(wèn),通過(guò)細(xì)粒度訪問(wèn)控制和本機(jī) AAD 集成降低成本和安全性。這適合作為專注于大數(shù)據(jù)分析場(chǎng)景的企業(yè)數(shù)據(jù)湖的選擇——使用轉(zhuǎn)換從非結(jié)構(gòu)化數(shù)據(jù)中提取高價(jià)值的結(jié)構(gòu)化數(shù)據(jù)、使用機(jī)器學(xué)習(xí)的高級(jí)分析或?qū)崟r(shí)數(shù)據(jù)攝取和分析以獲得快速洞察力。值得注意的是,我們已經(jīng)看到客戶對(duì)超大規(guī)模的定義有不同的定義——這取決于存儲(chǔ)的數(shù)據(jù)、交易數(shù)量和交易吞吐量。當(dāng)我們說(shuō)超大規(guī)模時(shí),我們通常指的是數(shù) PB 的數(shù)據(jù)和數(shù)百 Gbps 的吞吐量——這種分析所涉及的挑戰(zhàn)與吞吐量中的數(shù)百 GB 數(shù)據(jù)和幾 Gbps 的事務(wù)非常不同。
設(shè)計(jì)數(shù)據(jù)湖的關(guān)鍵考慮因素#
當(dāng)您在 ADLS Gen2 上構(gòu)建企業(yè)數(shù)據(jù)湖時(shí),了解您對(duì)關(guān)鍵用例的需求很重要,包括
- 我在數(shù)據(jù)湖中存儲(chǔ)了什么?
- 我在數(shù)據(jù)湖中存儲(chǔ)了多少數(shù)據(jù)?
- 您在數(shù)據(jù)的哪一部分上運(yùn)行分析工作負(fù)載?
- 誰(shuí)需要訪問(wèn)我的數(shù)據(jù)湖的哪些部分?
- 我將在我的數(shù)據(jù)湖上運(yùn)行哪些各種分析工作負(fù)載?
- 分析工作負(fù)載有哪些不同的事務(wù)模式?
- 我的工作預(yù)算是多少?
對(duì)于我們一直從客戶那里聽到的一些關(guān)鍵設(shè)計(jì)/架構(gòu)問(wèn)題,我們希望將本文檔的其余部分固定在以下結(jié)構(gòu)中。
- 有優(yōu)缺點(diǎn)的可用選項(xiàng)
- 選擇適合您的選項(xiàng)時(shí)要考慮的因素
- 適用時(shí)推薦的模式
- 您想要避免的反模式
為了最好地利用本文檔,請(qǐng)確定您的關(guān)鍵場(chǎng)景和要求,并根據(jù)您的要求權(quán)衡我們的選項(xiàng)以決定您的方法。如果您無(wú)法選擇完全適合您的場(chǎng)景的選項(xiàng),我們建議您使用一些選項(xiàng)進(jìn)行概念驗(yàn)證 (PoC),讓數(shù)據(jù)指導(dǎo)您的決策。
術(shù)語(yǔ)#
在我們討論構(gòu)建數(shù)據(jù)湖的最佳實(shí)踐之前,熟悉我們將在使用 ADLS Gen2 構(gòu)建數(shù)據(jù)湖的上下文中使用的各種術(shù)語(yǔ)非常重要。本文檔假設(shè)您在 Azure 中有一個(gè)帳戶。
- 資源:可通過(guò) Azure 獲得的可管理項(xiàng)目。虛擬機(jī)、存儲(chǔ)帳戶、VNET 是資源的示例。
- 訂閱:Azure 訂閱是一個(gè)邏輯實(shí)體,用于分離 Azure 資源的管理和財(cái)務(wù)(計(jì)費(fèi))邏輯。訂閱與 Azure 資源的限制和配額相關(guān)聯(lián),您可以在此處閱讀有關(guān)它們的信息。
- 資源組:用于容納 Azure 解決方案所需資源的邏輯容器可以作為一個(gè)組一起管理。您可以在此處閱讀有關(guān)資源組的更多信息。
- 存儲(chǔ)帳戶:包含所有 Azure 存儲(chǔ)數(shù)據(jù)對(duì)象的 Azure 資源:blob、文件、隊(duì)列、表和磁盤。您可以在此處閱讀有關(guān)存儲(chǔ)帳戶的更多信息。就本文檔而言,我們將重點(diǎn)介紹 ADLS Gen2 存儲(chǔ)帳戶——它本質(zhì)上是一個(gè)啟用了分層命名空間的 Azure Blob 存儲(chǔ)帳戶,您可以在此處閱讀更多相關(guān)信息。
- 容器(也稱為非 HNS 啟用帳戶的容器):一個(gè)容器組織一組對(duì)象(或文件)。一個(gè)存儲(chǔ)帳戶對(duì)容器的數(shù)量沒(méi)有限制,容器可以存儲(chǔ)無(wú)限數(shù)量的文件夾和文件。有些屬性可以應(yīng)用于容器級(jí)別,例如 RBAC 和 SAS 鍵。
- 文件夾/目錄:文件夾(也稱為目錄)組織一組對(duì)象(其他文件夾或文件)。一個(gè)文件夾下可以創(chuàng)建多少個(gè)文件夾或文件沒(méi)有限制。文件夾還具有與之關(guān)聯(lián)的訪問(wèn)控制列表 (ACL),有兩種類型的 ACL 與文件夾關(guān)聯(lián)——訪問(wèn) ACL 和默認(rèn) ACL,您可以在此處閱讀有關(guān)它們的更多信息。
- 對(duì)象/文件:文件是保存可以讀/寫的數(shù)據(jù)的實(shí)體。一個(gè)文件有一個(gè)與之關(guān)聯(lián)的訪問(wèn)控制列表。文件只有訪問(wèn) ACL,沒(méi)有默認(rèn) ACL。
組織和管理數(shù)據(jù)湖中的數(shù)據(jù)#
隨著我們的企業(yè)客戶制定他們的數(shù)據(jù)湖戰(zhàn)略,ADLS Gen2 的關(guān)鍵價(jià)值主張之一是作為其所有分析場(chǎng)景的單一數(shù)據(jù)存儲(chǔ)。請(qǐng)記住,這個(gè)單一數(shù)據(jù)存儲(chǔ)是一個(gè)邏輯實(shí)體,根據(jù)設(shè)計(jì)考慮,它可以表現(xiàn)為單個(gè) ADLS Gen2 帳戶或多個(gè)帳戶。一些客戶擁有分析管道組件的端到端所有權(quán),而其他客戶則擁有一個(gè)中央團(tuán)隊(duì)/組織來(lái)管理數(shù)據(jù)湖的基礎(chǔ)架構(gòu)、運(yùn)營(yíng)和治理,同時(shí)為多個(gè)客戶提供服務(wù)——無(wú)論是他們企業(yè)中的其他組織還是外部的其他客戶到他們的企業(yè)。
在本節(jié)中,我們針對(duì)客戶在設(shè)計(jì)企業(yè)數(shù)據(jù)湖時(shí)聽到的一系列常見問(wèn)題提出了我們的想法和建議。作為說(shuō)明,我們將以大型零售客戶 Contoso.com 為例,構(gòu)建他們的數(shù)據(jù)湖策略以幫助處理各種預(yù)測(cè)分析場(chǎng)景。
我想要集中式還是聯(lián)合式數(shù)據(jù)湖實(shí)施?#
作為企業(yè)數(shù)據(jù)湖,您有兩種可用的選擇——要么將所有數(shù)據(jù)管理集中在一個(gè)組織內(nèi)以滿足您的分析需求,要么擁有一個(gè)聯(lián)合模型,您的客戶管理他們自己的數(shù)據(jù)湖,而集中式數(shù)據(jù)團(tuán)隊(duì)提供指導(dǎo)并管理數(shù)據(jù)湖的幾個(gè)關(guān)鍵方面,例如安全性和數(shù)據(jù)治理。重要的是要記住,集中式和聯(lián)合數(shù)據(jù)湖策略都可以使用一個(gè)存儲(chǔ)帳戶或多個(gè)存儲(chǔ)帳戶來(lái)實(shí)施。
客戶問(wèn)我們的一個(gè)常見問(wèn)題是,他們是否可以在單個(gè)存儲(chǔ)帳戶中構(gòu)建數(shù)據(jù)湖,或者他們是否需要多個(gè)存儲(chǔ)帳戶。雖然從技術(shù)上講,單個(gè) ADLS Gen2 可以解決您的業(yè)務(wù)需求,但客戶選擇多個(gè)存儲(chǔ)帳戶的原因有多種,包括但不限于本節(jié)其余部分中的以下場(chǎng)景。
關(guān)鍵考慮#
在決定要?jiǎng)?chuàng)建的存儲(chǔ)帳戶數(shù)時(shí),以下注意事項(xiàng)有助于決定要預(yù)配的存儲(chǔ)帳戶數(shù)。
- 單個(gè)存儲(chǔ)帳戶使您能夠管理一組控制平面管理操作,例如存儲(chǔ)帳戶中所有數(shù)據(jù)的 RBAC、防火墻設(shè)置、數(shù)據(jù)生命周期管理策略,同時(shí)允許您使用容器、文件和存儲(chǔ)帳戶上的文件夾。如果您想優(yōu)化以簡(jiǎn)化管理,特別是如果您采用集中式數(shù)據(jù)湖策略,這將是一個(gè)值得考慮的好模型。
- 多個(gè)存儲(chǔ)帳戶使您能夠在不同帳戶之間隔離數(shù)據(jù),以便可以對(duì)它們應(yīng)用不同的管理策略或單獨(dú)管理它們的計(jì)費(fèi)/成本邏輯。如果您正在考慮采用聯(lián)合數(shù)據(jù)湖策略,每個(gè)組織或業(yè)務(wù)部門都有自己的一組可管理性要求,那么此模型可能最適合您。
讓我們將這些方面放在一些場(chǎng)景的上下文中。
覆蓋全球的企業(yè)數(shù)據(jù)湖#
在全球市場(chǎng)和/或地理分布的組織的推動(dòng)下,有些情況下,企業(yè)的分析場(chǎng)景將多個(gè)地理區(qū)域考慮在內(nèi)。數(shù)據(jù)本身可以分為兩大類。
- 可以在所有地區(qū)全球共享的數(shù)據(jù)——例如Contoso 正在嘗試規(guī)劃下一個(gè)財(cái)政年度的銷售目標(biāo),并希望從各個(gè)地區(qū)獲取銷售數(shù)據(jù)。
- 需要隔離到一個(gè)區(qū)域的數(shù)據(jù)——例如Contoso 希望根據(jù)買家的個(gè)人資料和購(gòu)買模式提供個(gè)性化的買家體驗(yàn)。鑒于這是客戶數(shù)據(jù),需要滿足主權(quán)要求,因此數(shù)據(jù)不能離開該區(qū)域。
在這種情況下,客戶將提供特定于區(qū)域的存儲(chǔ)帳戶來(lái)存儲(chǔ)特定區(qū)域的數(shù)據(jù)并允許與其他區(qū)域共享特定數(shù)據(jù)。這里仍然有一個(gè)集中的邏輯數(shù)據(jù)湖,其中包含一組由多個(gè)存儲(chǔ)帳戶組成的中央基礎(chǔ)設(shè)施管理、數(shù)據(jù)治理和其他操作。
客戶或數(shù)據(jù)特定隔離#
存在企業(yè)數(shù)據(jù)湖服務(wù)于多個(gè)客戶(內(nèi)部/外部)場(chǎng)景的場(chǎng)景,這些場(chǎng)景可能會(huì)受到不同的要求——不同的查詢模式和不同的訪問(wèn)要求。讓我們以我們的 Contoso.com 為例,他們有分析方案來(lái)管理公司運(yùn)營(yíng)。在這種情況下,他們擁有各種數(shù)據(jù)源——員工數(shù)據(jù)、客戶/活動(dòng)數(shù)據(jù)和財(cái)務(wù)數(shù)據(jù),這些數(shù)據(jù)受不同治理和訪問(wèn)規(guī)則的約束,也可能由公司內(nèi)的不同組織管理。在這種情況下,他們可以選擇為各種數(shù)據(jù)源創(chuàng)建不同的數(shù)據(jù)湖。
在另一種情況下,作為為多個(gè)客戶提供服務(wù)的多租戶分析平臺(tái)的企業(yè)最終可能會(huì)為不同訂閱中的客戶提供單獨(dú)的數(shù)據(jù)湖,以幫助確??蛻魯?shù)據(jù)及其相關(guān)的分析工作負(fù)載與其他客戶隔離,以幫助管理他們的成本和計(jì)費(fèi)模式。
建議#
- 為您的開發(fā)和生產(chǎn)環(huán)境創(chuàng)建不同的存儲(chǔ)帳戶(最好在不同的訂閱中)。除了確保需要不同 SLA 的開發(fā)和生產(chǎn)環(huán)境之間有足夠的隔離之外,這還有助于您有效地跟蹤和優(yōu)化管理和計(jì)費(fèi)策略。
- 確定數(shù)據(jù)的不同邏輯集,并考慮以統(tǒng)一或隔離的方式管理它們的需求——這將有助于確定您的帳戶邊界。
- 從一個(gè)存儲(chǔ)帳戶開始您的設(shè)計(jì)方法,并考慮為什么需要多個(gè)存儲(chǔ)帳戶(隔離、基于區(qū)域的要求等)而不是相反的原因。
- 其他資源(例如 VM 核心、ADF 實(shí)例)也有訂閱限制和配額——在設(shè)計(jì)數(shù)據(jù)湖時(shí)要考慮這些因素。
反模式#
謹(jǐn)防多重?cái)?shù)據(jù)湖管理#
當(dāng)您決定 ADLS Gen2 存儲(chǔ)帳戶的數(shù)量時(shí),請(qǐng)確保針對(duì)您的消費(fèi)模式進(jìn)行優(yōu)化。如果您不需要隔離并且您沒(méi)有充分利用您的存儲(chǔ)帳戶的功能,您將承擔(dān)管理多個(gè)帳戶的開銷,而沒(méi)有有意義的投資回報(bào)。
來(lái)回復(fù)制數(shù)據(jù)#
當(dāng)您擁有多個(gè)數(shù)據(jù)湖時(shí),您需要謹(jǐn)慎對(duì)待的一件事是您是否以及如何跨多個(gè)帳戶復(fù)制數(shù)據(jù)。這會(huì)產(chǎn)生一個(gè)管理問(wèn)題,即真相的來(lái)源是什么以及它需要有多新鮮,并且還會(huì)消耗涉及來(lái)回復(fù)制數(shù)據(jù)的事務(wù)。如果您有一個(gè)合法的方案來(lái)復(fù)制您的數(shù)據(jù),我們的路線圖中有一些功能可以使此工作流程更容易。
可擴(kuò)展性注釋#
我們的客戶問(wèn)的一個(gè)常見問(wèn)題是,單個(gè)存儲(chǔ)帳戶是否可以無(wú)限地繼續(xù)擴(kuò)展以滿足他們的數(shù)據(jù)、事務(wù)和吞吐量需求。我們?cè)?ADLS Gen2 中的目標(biāo)是滿足客戶所需的極限。當(dāng)您遇到需要真正存儲(chǔ)大量數(shù)據(jù)(數(shù) PB)并需要帳戶支持真正大的事務(wù)和吞吐量模式(數(shù)萬(wàn) TPS 和數(shù)百 Gbps 吞吐量)的場(chǎng)景時(shí),我們確實(shí)要求),通常通過(guò) Databricks 或 HDInsight 進(jìn)行分析處理需要 1000 個(gè)計(jì)算能力核心,請(qǐng)聯(lián)系我們的產(chǎn)品組,以便我們可以計(jì)劃適當(dāng)?shù)刂С帜囊蟆?/p>
如何組織我的數(shù)據(jù)?#
ADLS Gen2 帳戶中的數(shù)據(jù)組織可以在容器、文件夾和文件的層次結(jié)構(gòu)中按順序完成,如我們上面所見。當(dāng)我們與客戶合作制定他們的數(shù)據(jù)湖策略時(shí),一個(gè)非常常見的討論點(diǎn)是他們?nèi)绾巫詈玫亟M織他們的數(shù)據(jù)。有多種方法可以在數(shù)據(jù)湖中組織數(shù)據(jù),本節(jié)記錄了許多構(gòu)建數(shù)據(jù)平臺(tái)的客戶采用的通用方法。
該組織跟蹤數(shù)據(jù)的生命周期,因?yàn)樗ㄟ^(guò)源系統(tǒng)一直流向最終消費(fèi)者——BI 分析師或數(shù)據(jù)科學(xué)家。例如,讓我們跟隨銷售數(shù)據(jù)通過(guò) Contoso.com 的數(shù)據(jù)分析平臺(tái)的旅程。
例如,將原始數(shù)據(jù)視為自然狀態(tài)下有水的湖泊/池塘,數(shù)據(jù)按原樣攝取和存儲(chǔ),未經(jīng)轉(zhuǎn)換,豐富的數(shù)據(jù)是水庫(kù)中的水,經(jīng)過(guò)清洗并以可預(yù)測(cè)的狀態(tài)存儲(chǔ)(以我們的數(shù)據(jù)為例),策劃的數(shù)據(jù)就像準(zhǔn)備消費(fèi)的瓶裝水。工作區(qū)數(shù)據(jù)就像一個(gè)實(shí)驗(yàn)室,科學(xué)家可以在其中攜帶自己的數(shù)據(jù)進(jìn)行測(cè)試。值得注意的是,雖然所有這些數(shù)據(jù)層都存在于單個(gè)邏輯數(shù)據(jù)湖中,但它們可能分布在不同的物理存儲(chǔ)帳戶中。在這些情況下,擁有 Metastore 有助于發(fā)現(xiàn)。
- 原始數(shù)據(jù):這是來(lái)自源系統(tǒng)的數(shù)據(jù)。此數(shù)據(jù)按原樣存儲(chǔ)在數(shù)據(jù)湖中,并由分析引擎(例如 Spark)使用以執(zhí)行清理和充實(shí)操作以生成精選數(shù)據(jù)。原始區(qū)域中的數(shù)據(jù)有時(shí)也存儲(chǔ)為聚合數(shù)據(jù)集,例如在流場(chǎng)景的情況下,數(shù)據(jù)通過(guò)消息總線(如事件中心)攝取,然后通過(guò)實(shí)時(shí)處理引擎(如 Azure Stream 分析或 Spark Streaming)聚合,然后存儲(chǔ)在數(shù)據(jù)湖中。根據(jù)您的業(yè)務(wù)需求,您可以選擇保持?jǐn)?shù)據(jù)原樣(例如來(lái)自服務(wù)器的日志消息)或聚合它(例如實(shí)時(shí)流數(shù)據(jù))。這一層數(shù)據(jù)由中央數(shù)據(jù)工程團(tuán)隊(duì)高度控制,很少被其他消費(fèi)者訪問(wèn)。根據(jù)您企業(yè)的保留策略,此數(shù)據(jù)要么在保留策略要求的期限內(nèi)按原樣存儲(chǔ),要么在您認(rèn)為數(shù)據(jù)不再使用時(shí)將其刪除。例如。這將是從在其本地系統(tǒng)中運(yùn)行的 Contoso 的銷售管理工具中提取的原始銷售數(shù)據(jù)。
- 豐富的數(shù)據(jù):這一層數(shù)據(jù)是原始數(shù)據(jù)(按原樣或聚合)具有定義模式的版本,并且數(shù)據(jù)經(jīng)過(guò)清理、豐富(與其他來(lái)源),可供分析引擎使用以提取高價(jià)值數(shù)據(jù)。數(shù)據(jù)工程師生成這些數(shù)據(jù)集,并繼續(xù)從這些數(shù)據(jù)集中提取高價(jià)值/精選數(shù)據(jù)。例如。這將是豐富的銷售數(shù)據(jù) - 確保銷售數(shù)據(jù)被模式化,豐富了其他產(chǎn)品或庫(kù)存信息,并為 Contoso 內(nèi)部的不同業(yè)務(wù)部門分成多個(gè)數(shù)據(jù)集。
- 精選數(shù)據(jù):這一層數(shù)據(jù)包含提供給數(shù)據(jù)消費(fèi)者(BI 分析師和數(shù)據(jù)科學(xué)家)的高價(jià)值信息。該數(shù)據(jù)具有結(jié)構(gòu),可以按原樣(例如數(shù)據(jù)科學(xué)筆記本)或通過(guò)數(shù)據(jù)倉(cāng)庫(kù)提供給消費(fèi)者。該層中的數(shù)據(jù)資產(chǎn)通常受到高度管理和良好記錄。例如。業(yè)務(wù)部門的高質(zhì)量銷售數(shù)據(jù)(即與其他需求預(yù)測(cè)信號(hào)(如社交媒體趨勢(shì)模式)相關(guān)的豐富數(shù)據(jù)區(qū)域中的數(shù)據(jù)),用于預(yù)測(cè)分析以確定下一財(cái)政年度的銷售預(yù)測(cè)。
- 工作區(qū)數(shù)據(jù):除了數(shù)據(jù)工程團(tuán)隊(duì)從源頭攝取的數(shù)據(jù)之外,數(shù)據(jù)的消費(fèi)者還可以選擇帶來(lái)其他可能有價(jià)值的數(shù)據(jù)集。在這種情況下,數(shù)據(jù)平臺(tái)可以為這些消費(fèi)者分配工作空間,以便他們可以使用精選數(shù)據(jù)以及他們帶來(lái)的其他數(shù)據(jù)集來(lái)生成有價(jià)值的見解。例如。數(shù)據(jù)科學(xué)團(tuán)隊(duì)正在嘗試確定新地區(qū)的產(chǎn)品放置策略,他們可以帶來(lái)其他數(shù)據(jù)集,例如客戶人口統(tǒng)計(jì)數(shù)據(jù)和該地區(qū)其他類似產(chǎn)品的使用數(shù)據(jù),并使用高價(jià)值的銷售洞察數(shù)據(jù)來(lái)分析產(chǎn)品市場(chǎng)契合度和發(fā)行策略。
- 存檔數(shù)據(jù):這是您組織的數(shù)據(jù)“保險(xiǎn)庫(kù)” - 存儲(chǔ)的數(shù)據(jù)主要符合保留策略,并且具有非常嚴(yán)格的用途,例如支持審計(jì)。您可以使用 ADLS Gen2 中的 Cool 和 Archive 層來(lái)存儲(chǔ)此數(shù)據(jù)。您可以閱讀有關(guān)我們的數(shù)據(jù)生命周期管理政策的更多信息,以確定適合您的計(jì)劃。
關(guān)鍵考慮#
在決定數(shù)據(jù)結(jié)構(gòu)時(shí),請(qǐng)考慮數(shù)據(jù)本身的語(yǔ)義以及訪問(wèn)數(shù)據(jù)的消費(fèi)者,以確定適合您的數(shù)據(jù)組織策略。
建議#
- 為不同的數(shù)據(jù)區(qū)域創(chuàng)建不同的文件夾或容器(更多關(guān)于文件夾與容器之間的注意事項(xiàng)) - 原始數(shù)據(jù)集、豐富數(shù)據(jù)集、策劃數(shù)據(jù)集和工作區(qū)數(shù)據(jù)集。
- 在一個(gè)區(qū)域內(nèi),選擇根據(jù)邏輯分隔在文件夾中組織數(shù)據(jù),例如日期時(shí)間或業(yè)務(wù)單位或兩者兼而有之。您可以在我們的最佳實(shí)踐文檔中找到有關(guān)目錄布局的更多示例和場(chǎng)景。
- 在設(shè)計(jì)文件夾結(jié)構(gòu)時(shí)考慮分析使用模式。例如。如果您有一個(gè) Spark 作業(yè)讀取過(guò)去 3 個(gè)月內(nèi)來(lái)自特定地區(qū)的產(chǎn)品的所有銷售數(shù)據(jù),那么理想的文件夾結(jié)構(gòu)是 /enriched/product/region/timestamp。
- 在決定文件夾結(jié)構(gòu)時(shí),請(qǐng)考慮您希望遵循的訪問(wèn)控制模型。
- 下表提供了一個(gè)框架,供您考慮數(shù)據(jù)的不同區(qū)域以及具有常見模式的區(qū)域的相關(guān)管理。
考慮 | 原始數(shù)據(jù) | 豐富的數(shù)據(jù) | 策劃的數(shù)據(jù) | 工作空間數(shù)據(jù) |
---|---|---|---|---|
消費(fèi)者 | 數(shù)據(jù)工程團(tuán)隊(duì) | 數(shù)據(jù)工程團(tuán)隊(duì),由數(shù)據(jù)科學(xué)家/BI分析師提供臨時(shí)訪問(wèn)模式 | 數(shù)據(jù)工程師、BI分析師、數(shù)據(jù)科學(xué)家 | 數(shù)據(jù)科學(xué)家/BI分析師 |
訪問(wèn)控制 | 數(shù)據(jù)工程團(tuán)隊(duì)已鎖定訪問(wèn)權(quán)限 | 完全控制數(shù)據(jù)工程團(tuán)隊(duì),并對(duì)BI分析師/數(shù)據(jù)科學(xué)家具有讀取權(quán)限 | 完全控制數(shù)據(jù)工程團(tuán)隊(duì),對(duì)BI分析師/數(shù)據(jù)科學(xué)家具有讀寫權(quán)限 | 完全控制數(shù)據(jù)工程師、數(shù)據(jù)科學(xué)家/BI 分析師 |
數(shù)據(jù)生命周期管理 | 一旦生成了豐富的數(shù)據(jù),就可以將其移動(dòng)到較冷的存儲(chǔ)層以管理成本。 | 較舊的數(shù)據(jù)可以移動(dòng)到較冷的層。 | 較舊的數(shù)據(jù)可以移動(dòng)到較冷的層。 | 雖然最終消費(fèi)者可以控制這個(gè)工作區(qū),但要確保有清理不必要數(shù)據(jù)的流程和策略——例如,使用基于策略的 DLM,數(shù)據(jù)可以很容易地建立起來(lái)。 |
文件夾結(jié)構(gòu)和層次結(jié)構(gòu) | 文件夾結(jié)構(gòu)以反映攝入模式。 | 文件夾結(jié)構(gòu)反映組織,例如業(yè)務(wù)部門。 | 文件夾結(jié)構(gòu)反映組織,例如業(yè)務(wù)部門。 | 文件夾結(jié)構(gòu)反映了工作區(qū)所使用的團(tuán)隊(duì)。 |
實(shí)例 | /raw/sensordata /raw/lobappdata /raw/userclickdata | /enriched/sales /enriched/manufacturing | /curated/sales /curated/manufacturing | /workspace/salesBI /workspace/manufacturindatascience |
- 我們的客戶詢問(wèn)何時(shí)使用容器以及何時(shí)使用文件夾來(lái)組織數(shù)據(jù)的另一個(gè)常見問(wèn)題。雖然在更高級(jí)別,它們都用于數(shù)據(jù)的邏輯組織,但它們有一些關(guān)鍵區(qū)別。
考慮 | 容器 | 文件夾 |
---|---|---|
等級(jí) | 容器可以包含文件夾或文件。 | 文件夾可以包含其他文件夾或文件。 |
使用AAD的訪問(wèn)控制 | 在容器級(jí)別,可以使用RBAC設(shè)置粗粒度的訪問(wèn)控制。這些RBAC適用于容器內(nèi)的所有數(shù)據(jù)。 | 在文件夾級(jí)別,可以使用ACL設(shè)置細(xì)粒度的訪問(wèn)控制。ACL僅適用于該文件夾(除非使用默認(rèn)ACL,在這種情況下,在該文件夾下創(chuàng)建新文件/文件夾時(shí)會(huì)對(duì)其進(jìn)行快照)。 |
非AAD訪問(wèn)控制 | 在容器級(jí)別,可以啟用匿名訪問(wèn)(通過(guò)共享密鑰)或設(shè)置特定于容器的SAS密鑰。 | 文件夾不支持非AAD訪問(wèn)控制。 |
反模式#
不相關(guān)數(shù)據(jù)無(wú)限增長(zhǎng)#
雖然 ADLS Gen2 存儲(chǔ)不是很昂貴,并且允許您在存儲(chǔ)帳戶中存儲(chǔ)大量數(shù)據(jù),但即使您不需要整個(gè)數(shù)據(jù)語(yǔ)料庫(kù),生命周期管理策略的缺失也可能最終導(dǎo)致存儲(chǔ)中數(shù)據(jù)的增長(zhǎng)非常快為您的方案。我們看到這種數(shù)據(jù)增長(zhǎng)的兩種常見模式是:-
- 使用較新版本的數(shù)據(jù)刷新數(shù)據(jù)——客戶通常會(huì)保留一些較舊版本的數(shù)據(jù)以供分析,當(dāng)同一數(shù)據(jù)有一段時(shí)間刷新時(shí),例如當(dāng)上個(gè)月的客戶參與數(shù)據(jù)在 30 天的滾動(dòng)窗口中每天刷新時(shí),您每天都會(huì)獲得 30 天的參與數(shù)據(jù),如果您沒(méi)有適當(dāng)?shù)那謇砹鞒蹋臄?shù)據(jù)可能會(huì)呈指數(shù)級(jí)增長(zhǎng)。
- 工作區(qū)數(shù)據(jù)積累——在工作區(qū)數(shù)據(jù)區(qū),您的數(shù)據(jù)平臺(tái)的客戶,即 BI 分析師或數(shù)據(jù)科學(xué)家可以帶來(lái)他們自己的數(shù)據(jù)集 通常,我們已經(jīng)看到,當(dāng)未使用的數(shù)據(jù)是留在存儲(chǔ)空間周圍。
我如何管理對(duì)我的數(shù)據(jù)的訪問(wèn)?#
ADLS Gen2 支持結(jié)合 RBAC 和 ACL 來(lái)管理數(shù)據(jù)訪問(wèn)的訪問(wèn)控制模型。您可以在此處找到有關(guān)訪問(wèn)控制的更多信息。除了使用 RBAC 和 ACL 使用 AAD 身份管理訪問(wèn)之外,ADLS Gen2 還支持使用 SAS 令牌和共享密鑰來(lái)管理對(duì) Gen2 帳戶中數(shù)據(jù)的訪問(wèn)。
我們從客戶那里聽到的一個(gè)常見問(wèn)題是何時(shí)使用 RBAC 以及何時(shí)使用 ACL 來(lái)管理對(duì)數(shù)據(jù)的訪問(wèn)。RBAC 允許您將角色分配給安全主體(AAD 中的用戶、組、服務(wù)主體或托管標(biāo)識(shí)),并且這些角色與容器中數(shù)據(jù)的權(quán)限集相關(guān)聯(lián)。RBAC 可以幫助管理與控制平面操作(例如添加其他用戶和分配角色、管理加密設(shè)置、防火墻規(guī)則等)或數(shù)據(jù)平面操作(例如創(chuàng)建容器、讀寫數(shù)據(jù)等)相關(guān)的角色。有關(guān) RBAC 的更多信息,您可以閱讀這篇文章。
RBAC 本質(zhì)上僅限于頂級(jí)資源——ADLS Gen2 中的存儲(chǔ)帳戶或容器。您還可以在資源組或訂閱級(jí)別跨資源應(yīng)用 RBAC。ACL 允許您將安全主體的一組特定權(quán)限管理到更窄的范圍 - ADLS Gen2 中的文件或目錄。有 2 種類型的 ACL——訪問(wèn) ADL 控制對(duì)文件或目錄的訪問(wèn),默認(rèn) ACL 是為與目錄關(guān)聯(lián)的目錄設(shè)置的 ACL 模板,這些 ACL 的快照由在下創(chuàng)建的任何子項(xiàng)繼承那個(gè)目錄。
關(guān)鍵考慮#
下表提供了如何使用 ACL 和 RBAC 來(lái)管理 ADLS Gen2 帳戶中數(shù)據(jù)權(quán)限的快速概覽——在較高級(jí)別,使用 RBAC 來(lái)管理粗粒度權(quán)限(適用于存儲(chǔ)帳戶或容器)并使用用于管理細(xì)粒度權(quán)限的 ACL(適用于文件和目錄)。
Consideration | RBACs | ACLs |
---|---|---|
Scope | Storage accounts, containers. Cross resource RBACs at subscription or resource group level. | Files, directories |
Limits | 2000 RBACs in a subscription | 32 ACLs (effectively 28 ACLs) per file, 32 ACLs (effectively 28 ACLs) per folder, default and access ACLs each |
Supported levels of permission | Built-in RBACs or custom RBACs | ACL permissions |
在容器級(jí)別使用 RBAC 作為數(shù)據(jù)訪問(wèn)控制的唯一機(jī)制時(shí),請(qǐng)注意 2000 的限制,尤其是在您可能擁有大量容器的情況下。您可以在門戶的任何訪問(wèn)控制 (IAM) 刀片中查看每個(gè)訂閱的角色分配數(shù)量。
建議#
- 為對(duì)象(通常是我們?cè)诳蛻裟抢锟吹降哪夸浿械哪夸洠﹦?chuàng)建所需權(quán)限級(jí)別的安全組,并將它們添加到 ACL。對(duì)于要提供權(quán)限的特定安全主體,請(qǐng)將它們添加到安全組,而不是為它們創(chuàng)建特定的 ACL。遵循這種做法將幫助您最大限度地減少管理新身份訪問(wèn)的過(guò)程——如果您想將新身份遞歸添加到容器中的每個(gè)文件和文件夾,這將需要很長(zhǎng)時(shí)間。讓我們舉一個(gè)例子,您的數(shù)據(jù)湖中有一個(gè)目錄 /logs,其中包含來(lái)自服務(wù)器的日志數(shù)據(jù)。您可以通過(guò) ADF 將數(shù)據(jù)攝取到此文件夾中,還可以讓服務(wù)工程團(tuán)隊(duì)的特定用戶上傳日志并管理其他用戶到此文件夾。此外,您還有各種 Databricks 集群分析日志。您將創(chuàng)建 /logs 目錄并創(chuàng)建兩個(gè)具有以下權(quán)限的 AAD 組 LogsWriter 和 LogsReader。
- LogsWriter 添加到具有 rwx 權(quán)限的 /logs 文件夾的 ACL。
- LogsReader 添加到具有 r-x 權(quán)限的 /logs 文件夾的 ACL。
- ADF 的 SPN/MSI 以及用戶和服務(wù)工程團(tuán)隊(duì)可以添加到 LogsWriter 組。
- Databricks 的 SPN/MSI 將添加到 LogsReader 組。
我選擇什么數(shù)據(jù)格式?#
數(shù)據(jù)可能以多種格式到達(dá)您的數(shù)據(jù)湖帳戶——人類可讀的格式,如 JSON、CSV 或 XML 文件,壓縮的二進(jìn)制格式,如 .tar.gz 和各種大小——巨大的文件(幾 TB),如從本地系統(tǒng)導(dǎo)出 SQL 表或從 IoT 解決方案導(dǎo)出大量小文件(幾 KB),例如實(shí)時(shí)事件。雖然 ADLS Gen2 支持在不施加任何限制的情況下存儲(chǔ)所有類型的數(shù)據(jù),但最好考慮數(shù)據(jù)格式以最大限度地提高處理管道的效率并優(yōu)化成本——您可以通過(guò)選擇正確的格式和正確的文件大小來(lái)實(shí)現(xiàn)這兩個(gè)目標(biāo)。Hadoop 有一組它支持的文件格式,用于優(yōu)化存儲(chǔ)和處理結(jié)構(gòu)化數(shù)據(jù)。讓我們看看一些常見的文件格式——Avro、Parquet 和 ORC。所有這些都是機(jī)器可讀的二進(jìn)制文件格式,提供壓縮來(lái)管理文件大小,并且本質(zhì)上是自描述的,文件中嵌入了模式。格式之間的區(qū)別在于數(shù)據(jù)的存儲(chǔ)方式——Avro 以基于行的格式存儲(chǔ)數(shù)據(jù),而 Parquet 和 ORC 格式以列格式存儲(chǔ)數(shù)據(jù)。
關(guān)鍵考慮#
- Avro 文件格式適用于 I/O 模式更重的寫入或查詢模式傾向于完整檢索多行記錄。例如。Avro 格式受到消息總線的青睞,例如 Event Hub 或 Kafka 連續(xù)寫入多個(gè)事件/消息。
- 當(dāng) I/O 模式讀取量更大和/或查詢模式專注于記錄中的列的子集時(shí),Parquet 和 ORC 文件格式受到青睞——其中可以優(yōu)化讀取事務(wù)以檢索特定列而不是讀取整個(gè)記錄。
如何管理我的數(shù)據(jù)湖成本?#
ADLS Gen2 為您的分析場(chǎng)景提供數(shù)據(jù)湖存儲(chǔ),目標(biāo)是降低您的總擁有成本??梢栽诖颂幷业?ADLS Gen2 的定價(jià)。由于我們的企業(yè)客戶滿足多個(gè)組織的需求,包括中央數(shù)據(jù)湖上的分析用例,他們的數(shù)據(jù)和交易往往會(huì)急劇增加。由于很少或沒(méi)有集中控制,相關(guān)成本也會(huì)增加。本部分提供了可用于管理和優(yōu)化數(shù)據(jù)湖成本的關(guān)鍵注意事項(xiàng)。
關(guān)鍵考慮#
- ADLS Gen2 提供策略管理,您可以使用它來(lái)利用存儲(chǔ)在您的 Gen2 帳戶中的數(shù)據(jù)的生命周期。您可以在此處閱讀有關(guān)這些政策的更多信息。例如。如果您的組織有保留數(shù)據(jù) 5 年的保留策略要求,您可以設(shè)置策略以在數(shù)據(jù) 5 年未修改時(shí)自動(dòng)刪除數(shù)據(jù)。如果您的分析方案主要對(duì)上個(gè)月攝取的數(shù)據(jù)進(jìn)行操作,您可以將早于該月的數(shù)據(jù)移動(dòng)到較低的層(冷層或存檔層),這些層的數(shù)據(jù)存儲(chǔ)成本較低。請(qǐng)注意,較低層的靜態(tài)數(shù)據(jù)價(jià)格較低,但交易策略較高,因此如果您希望頻繁處理數(shù)據(jù),請(qǐng)不要將數(shù)據(jù)移動(dòng)到較低層。
- 確保您為您的帳戶選擇了正確的復(fù)制選項(xiàng),您可以閱讀數(shù)據(jù)冗余文章以了解有關(guān)您的選項(xiàng)的更多信息。例如。雖然 GRS 賬戶確保您的數(shù)據(jù)跨多個(gè)區(qū)域復(fù)制,但它的成本也高于 LRS 賬戶(數(shù)據(jù)在同一數(shù)據(jù)中心復(fù)制)。當(dāng)您擁有生產(chǎn)環(huán)境時(shí),GRS 等復(fù)制選項(xiàng)對(duì)于通過(guò)高可用性和災(zāi)難恢復(fù)確保業(yè)務(wù)連續(xù)性非常有價(jià)值。但是,LRS 帳戶可能足以滿足您的開發(fā)環(huán)境。
- 正如您從 ADLS Gen2 的定價(jià)頁(yè)面中看到的,您的讀寫交易按 4 MB 的增量計(jì)費(fèi)。例如。如果您執(zhí)行 10,000 次讀取操作,并且每次讀取的文件大小為 16 MB,則您需要為 40,000 次交易付費(fèi)。當(dāng)您在事務(wù)中讀取幾 KB 的數(shù)據(jù)時(shí),您仍需為 4 MB 的事務(wù)付費(fèi)。優(yōu)化單個(gè)事務(wù)中的更多數(shù)據(jù),即優(yōu)化事務(wù)中的更高吞吐量不僅可以節(jié)省成本,還可以極大地提高您的性能。
如何監(jiān)控我的數(shù)據(jù)湖?#
了解您的數(shù)據(jù)湖的使用方式及其執(zhí)行方式是操作您的服務(wù)并確保它可供使用其中包含的數(shù)據(jù)的任何工作負(fù)載使用的關(guān)鍵組成部分。這包括:
- 能夠根據(jù)頻繁操作來(lái)審計(jì)您的數(shù)據(jù)湖
- 了解關(guān)鍵性能指標(biāo),例如高延遲的操作
- 了解常見錯(cuò)誤、導(dǎo)致錯(cuò)誤的操作以及導(dǎo)致服務(wù)端節(jié)流的操作
關(guān)鍵考慮#
數(shù)據(jù)湖的所有遙測(cè)數(shù)據(jù)均可通過(guò) Azure Monitor 中的 Azure 存儲(chǔ)日志獲得。Azure Monitor 中的 Azure 存儲(chǔ)日志是 Azure 存儲(chǔ)的一項(xiàng)新預(yù)覽功能,它允許您的存儲(chǔ)帳戶與 Log Analytics、事件中心以及使用標(biāo)準(zhǔn)診斷設(shè)置將日志存檔到另一個(gè)存儲(chǔ)帳戶之間的直接集成??梢栽?Azure 存儲(chǔ)監(jiān)視數(shù)據(jù)參考中找到指標(biāo)和資源日志的完整列表及其關(guān)聯(lián)架構(gòu)的參考。
- 在考慮訪問(wèn)方式時(shí),選擇將 Azure 存儲(chǔ)日志中的日志存儲(chǔ)在何處變得很重要:
- 如果要近乎實(shí)時(shí)地訪問(wèn)日志并能夠?qū)⑷罩局械氖录c來(lái)自 Azure Monitor 的其他指標(biāo)相關(guān)聯(lián),則可以將日志存儲(chǔ)在 Log Analytics 工作區(qū)中。這允許您使用 KQL 和作者查詢來(lái)查詢您的日志,這些查詢枚舉您工作區(qū)中的 StorageBlobLogs 表。
- 如果要存儲(chǔ)日志以用于近實(shí)時(shí)查詢和長(zhǎng)期保留,可以配置診斷設(shè)置以將日志發(fā)送到 Log Analytics 工作區(qū)和存儲(chǔ)帳戶。
- 如果您想通過(guò)另一個(gè)查詢引擎(例如 Splunk)訪問(wèn)您的日志,您可以配置您的診斷設(shè)置以將日志發(fā)送到事件中心并將日志從事件中心攝取到您選擇的目的地。
- 可以通過(guò) Azure 門戶、PowerShell、Azure CLI 和 Azure 資源管理器模板啟用 Azure Monitor 中的 Azure 存儲(chǔ)日志。對(duì)于大規(guī)模部署,可以使用 Azure Policy 并完全支持修復(fù)任務(wù)。有關(guān)更多詳細(xì)信息,請(qǐng)參閱:
- Azure/社區(qū)政策
- ciphertxt/AzureStoragePolicy
Azure Monitor 中 Azure 存儲(chǔ)日志的常見 KQL 查詢
以下查詢可用于深入了解數(shù)據(jù)湖的性能和健康狀況:
- Frequent operations
StorageBlobLogs | where TimeGenerated > ago(3d) | summarize count() by OperationName | sort by count_ desc | render piechart
- High latency operations
StorageBlobLogs | where TimeGenerated > ago(3d) | top 10 by DurationMs desc | project TimeGenerated, OperationName, DurationMs, ServerLatencyMs, ClientLatencyMs = DurationMs - ServerLatencyMs
- Operations causing the most errors
StorageBlobLogs | where TimeGenerated > ago(3d) and StatusText !contains "Success" | summarize count() by OperationName | top 10 by count_ desc
Azure Monitor 中 Azure 存儲(chǔ)日志的所有內(nèi)置查詢的列表可在 GitHub 上的 Azure Montior 社區(qū)的 Azure 服務(wù)/存儲(chǔ)帳戶/查詢文件夾中找到。
-
大數(shù)據(jù)分析
+關(guān)注
關(guān)注
1文章
134瀏覽量
16887 -
Azure
+關(guān)注
關(guān)注
1文章
123瀏覽量
12778
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論