跳轉到主要內容
Beplay体育安卓版本平台的博客

容易攝入Lakehouse與複製

分享這篇文章

一個新的數據管理體係結構被稱為數據lakehouse獨立出現在許多組織和用例支持AI和BI直接在海量數據。的一個關鍵成功因素為使用數據lakehouse分析和機器學習是能夠快速、輕鬆地攝取各種類型的數據,包括數據從本地存儲平台(數據倉庫、主機),實時流數據,批量數據資產。Beplay体育安卓版本

作為數據攝取到lakehouse,眾所周知的ETL管道是一個持續的過程,需要多種選項來攝取各種格式,類型和延遲的數據。等對象數據存儲在雲存儲AWS S3,穀歌雲存儲和Azure湖數據存儲,數據磚提供自動加載程序,本地集成功能,允許數據工程師不斷攝取數以百萬計的文件從雲存儲。在其他流情況下(例如,物聯網傳感器或點擊流數據),磚為Apache提供本地連接器的火花結構化流快速攝取數據從受歡迎的消息隊列,等Apache卡夫卡AWS動作,Azure事件中心,或在低延遲。此外,許多客戶可以利用流行的攝入工具beplay体育app下载地址集成數據磚,如Fivetran——從企業應用程序輕鬆地攝取數據,數據庫、主機和lakehouse更多。最後,分析師可以使用簡單的“複製到”命令自動向lakehouse把新的數據,而不需要跟蹤哪些文件已經處理。

這個博客關注複製,一個簡單而強大的SQL命令,允許您執行批處理文件攝入湖成三角洲從雲存儲對象。這是冪等的,保證攝取文件隻有一次當多次執行語義,支持增量附加和簡單的轉換。它可以運行一次,以這種特別的方式,可以通過磚將工作流。在最近的磚運行時版本介紹,複製到新的數據預覽功能,驗證,增強的錯誤處理,和一種新的方式複製到一個無模式三角洲湖表,以便用戶可以很快開始,完成端到端用戶從雲之旅攝取對象存儲。讓我們看看流行的複製到用例。

1。第一次攝入數據

拷貝到需要一個表中存在,因為它吸入到三角洲目標表的數據。然而,你不知道你的數據是什麼樣子的。首先創建一個空δ表。

創建my_example_data;

寫出你的數據之前,您可能想要預覽它看起來和確保數據正確。複製到驗證模式是磚的新功能運行時10.3及以上,可以預覽和驗證源數據之前攝取許多文件從雲存儲對象。這些驗證包括:

  • 如果數據可以被解析
  • 目標表的模式匹配,或者如果需要進化的模式
  • 表上的所有nullability和檢查約束
複製my_example_data“s3: / /桶/ exampleData”FILEFORMAT=CSV驗證COPY_OPTIONS (“mergeSchema”=“真正的”)

默認的數據驗證解析源目錄中的所有數據,以確保沒有任何問題,但返回的行預覽是有限的。可選地,您可以提供驗證後預覽的行數。

COPY_OPTION“mergeSchema”指定它是好的發展目標差值表的模式。模式演化隻允許添加新列,和不支持的數據類型更改為現有列。在其他用例,則可以跳過這個選項如果你打算管理表模式更嚴格地作為數據管道可能有嚴格的模式要求和可能不想發展模式。然而,我們的目標δ在上麵的例子中是一個空表,columnless表此刻;因此,我們必須指定COPY_OPTION“mergeSchema”。

圖1:複製到驗證模式輸出
圖1:複製到驗證模式輸出

2。配置複製到

當回顧的結果驗證(見圖1),您可能會注意到,您的數據看起來不像你想要的。你不高興你先預覽你的數據集嗎?你注意到的第一件事是列名不CSV頭中指定。更糟的是,標題顯示為一行數據。您可以配置解析器通過指定FORMAT_OPTIONS CSV。接下來讓我們添加這些。

複製my_example_data“s3: / /桶/ exampleData”FILEFORMAT=CSV驗證FORMAT_OPTIONS (“頭”=“真正的”,“inferSchema”=“真正的”,“mergeSchema”=“真正的”)COPY_OPTIONS (“mergeSchema”=“真正的”)

當使用格式選項,您可以告訴複製到CSV文件的推斷的數據類型通過指定inferSchema選項;否則,所有默認數據類型是字符串。另一方麵,二進製文件格式AVRO和拚花不需要這個選項,因為他們定義自己的模式。另一個選擇,“mergeSchema”國家的模式應該綜合樣本推斷的CSV文件而不是一個。特定於格式的綜合列表選項中可以找到文檔

圖2顯示了驗證輸出標題正確解析。

圖2:複製到驗證模式輸出與頁眉和inferSchema啟用
圖2:複製到驗證模式輸出與頁眉和inferSchema啟用

3所示。附加數據到三角洲表

現在預覽看起來不錯,我們可以刪除驗證關鍵字並執行複製到命令。

複製my_example_data“s3: / /桶/ exampleData”FILEFORMAT=CSVFORMAT_OPTIONS (“頭”=“真正的”,“inferSchema”=“真正的”,“mergeSchema”=“真正的”)COPY_OPTIONS (“mergeSchema”=“真正的”)

複製到跟蹤文件狀態的攝入。不像在插入命令,用戶可以與複製成冪等性,這意味著用戶不會複製目標表中的數據複製到運行時多次相同的源數據。

複製到可運行一次,以這種特別的方式,可以將磚工作流。同時複製到不支持本地攝取低延遲,你可以通過協調器觸發複製到Apache氣流。

圖3:磚工作流調度任務界麵
圖3:磚工作流調度任務界麵

4所示。安全的數據訪問和複製

以幾種不同的方式複製到支持安全訪問。在本節中,我們要強調兩個選項都可以使用磚的SQL和筆記本從最近的版本:

統一目錄

Databrick總體可用性的統一目錄,您可以使用複製到攝取外部表數據統一目錄管理或從任何來源和支持的文件格式複製。統一目錄還增加了新的配置選項獲得原始數據,允許您使用統一目錄外部位置或存儲憑證訪問雲中的數據對象存儲。了解更多關於如何使用和統一目錄複製到嗎

臨時憑證

如果你沒有配置統一目錄或實例配置文件?數據從一個受信任的第三方桶呢?這是一個方便的複製功能,允許你攝取數據與內聯臨時憑證處理臨時大量攝入用例。

複製my_example_data“s3: / /桶/ exampleDataPath”(憑據(AWS_ACCESS_KEY=“……”,AWS_SECRET_KEY=“……”,AWS_SESSION_TOKEN=“……”))FILEFORMAT=CSV

5。過濾文件攝入

如何攝取的子集文件的文件名匹配一個模式?你可以把一團模式——一個水珠模式識別的文件加載從源目錄。例如,讓我們過濾和攝取文件包含下麵的文件名“raw_data”這個詞。

複製my_example_data“s3: / /桶/ exampleDataPath”FILEFORMAT=CSV模式=“* raw_data * . csv”FORMAT_OPTIONS (“頭”=“真正的”)

6。在一個時間段攝取文件

在數據工程中,經常需要攝取文件被修改之前或之後一個特定的時間戳。兩個時間戳之間的數據也會感興趣的。“modifiedAfter”和“modifiedBefore”格式複製到所提供的選項允許用戶從選擇攝取數據時間窗口到三角洲表中。

複製my_example_data“s3: / /桶/ exampleDataPath”FILEFORMAT=CSV模式=“* raw_data_ * . csv”FORMAT_OPTIONS (“頭”=“真正的”,“modifiedAfter”=2022 - 09 - 12 - t10:53:11.000 + 0000的)

7所示。糾正數據與力的選擇

因為複製到默認是等冪的,運行相同查詢相同的源文件不止一次對目標表沒有影響在最初的執行。你必須更改傳播到目標表,因為在實際情況下,源數據文件在雲對象存儲可能會改變在以後修正。在這種情況下,可以先刪除目標表中的數據在攝取更多的最近的數據從源文件。這個操作隻需要設置複製選項‘力’‘真正的’。

複製my_example_data“s3: / /桶/ exampleDataPath”FILEFORMAT=CSV模式=“* raw_data_2022 * . csv”FORMAT_OPTIONS (“頭”=“真正的”)COPY_OPTIONS (“力”=“真正的”)

8。應用簡單的轉換

如果你想重命名列?或者源數據已經改變了前一列被重命名為別的東西。你不想攝取數據作為兩個單獨的列,但作為一個單獨的列中。我們可以利用複製SELECT語句的執行簡單的轉換。

複製demo.my_example_data(選擇concat (first_name、”“last_name)作為full_name,*除了(first_name、last_name)“s3: / /桶/ exampleDataPath”)FILEFORMAT=CSV模式=‘* . csv‘FORMAT_OPTIONS (“頭”=“真正的”)COPY_OPTIONS (“力”=“真正的”)

9。錯誤處理和可觀察性和複製

錯誤處理:
如何攝取數據與文件損壞問題?常見的文件腐敗的例子有:

  • 一個不正確的文件格式的文件
  • 無法解壓
  • 不可讀文件(例如無效的拚花)

複製的格式選項ignoreCorruptFiles幫助跳過這些文件在處理。複製到命令返回的結果文件跳過num_skipped_corrupt_files列的數量。此外,這些腐敗文件不攝入狀態跟蹤的拷貝,因此他們可以加載在隨後的執行,一旦腐敗是固定的。這個選項是可用的磚11.0運行時+。

你可以看到哪些文件已發現腐敗的複製在驗證模式下運行。

複製my_example_data“s3: / /桶/ exampleDataPath”FILEFORMAT=CSV驗證所有FORMAT_OPTIONS (“ignoreCorruptFiles”=“真正的”)

可觀測性:

在磚10.5運行時,文件元數據列被介紹給提供輸入文件元數據信息,允許用戶監控和獲取關鍵屬性的攝取文件路徑、名稱、大小和修改時間,通過查詢一個隱藏的結構稱為_metadata列。包括這些信息的目的地,您必須顯式地引用_metadata列在複製到您的查詢。

複製my_example_data(選擇*,_metadata source_metadata“s3: / /桶/ exampleDataPath”)FILEFORMAT=CSV

如何自動加載程序比較嗎?

複製到是一個簡單而強大的命令時使用你的源目錄(即包含少量的文件。或更少),成千上萬的文件,如果你喜歡SQL。此外,複製到可以使用JDBC將數據推送到三角洲湖在你方便的時候,許多攝入一種常見模式的合作夥伴。攝取大量的文件流和批處理我們推薦使用自動加載程序。此外,對於一個現代的基於的數據管道大獎章架構,我們建議使用自動加載程序三角洲生活表管道自動錯誤處理,利用先進的功能,質量控製,數據沿襲和設置預期在一個聲明性方法。

如何開始?

首先,你可以去磚的SQL查詢編輯、更新和運行示例SQL命令從雲攝取對象存儲。查看選項4號建立安全訪問您的數據在磚SQL查詢它。熟悉複製成磚的SQL,您也可以按照這個快速入門教程

作為一種替代方法,您可以使用這個筆記本數據科學與工程和機器學習工作學習的大部分複製在這個博客功能,在源數據和目標三角洲DBFS表生成。

可以找到更多教程複製在這裏

免費試著磚

相關的帖子

看到所有Beplay体育安卓版本平台的博客的帖子
Baidu
map