開始
加載和管理數據
處理數據
政府
引用和資源
更新2023年6月30日
給我們反饋
磚建議您使用複製到命令增量和批量數據加載數據源包含成千上萬的文件。磚建議你使用自動加載程序高級用例。
在本教程中,您將使用複製成從雲對象存儲命令將數據加載到一個表在你的磚工作區。
複製成
磚賬戶和磚工作空間在您的帳戶。創建這些,明白了開始:設置帳戶和工作區。
一個通用的集群在您的工作空間中運行磚運行時的11.0或以上。創建一個通用的集群中,看到的創建一個集群。
熟悉磚工作空間的用戶界麵。看到在工作區中。
熟悉使用磚的筆記本。
一個位置你可以寫數據;這個演示使用DBFS根作為一個例子,但磚推薦外部存儲位置配置統一目錄。
本教程假設基本熟悉磚和一個默認的工作空間配置。如果你不能提供的代碼運行,請聯係您的工作區管理員聯係,以確保您獲得計算資源和一個地點,你可以寫數據。
注意,使用所提供的代碼源參數指定位置你將配置複製成數據源。寫,這個代碼點位置DBFS根。如果你有寫權限在外部對象存儲位置,取代dbfs: /部分的源字符串對象存儲路徑。因為這個代碼塊也遞歸刪除重置這個演示,確保你不會在生產數據和你保持/用戶/ {username} / copy-into-demo嵌套目錄以避免重寫或刪除現有數據。
源
dbfs: /
/用戶/ {username} / copy-into-demo
創建一個新的SQL筆記本和將它附加到一個集群運行磚運行時的11.0或以上。
複製和運行以下代碼來重置本教程中使用的存儲位置和數據庫:
%python#設置參數隔離在工作區和重置演示用戶名=火花。sql(的“選擇regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”)。第一個()(0]數據庫=f“copyinto_{用戶名}_db”源=f“dbfs: / user /{用戶名}/ copy-into-demo”火花。sql(f“c.username = '{用戶名}’”)火花。sql(f“設置c.database ={數據庫}”)火花。sql(f“c.source = '{源}’”)火花。sql(“數據庫,如果存在美元下降{c.database}級聯”)火花。sql(“創建數據庫{c.database}”)火花。sql(“使用美元{c.database}”)dbutils。fs。rm(源,真正的)
並運行下麵的代碼複製到配置一些表和函數,將用於隨機生成數據:
——配置隨機數據生成器創建表user_ping_raw(平user_id字符串,整數,時間的時間戳)使用json位置$ {c.source};創建表user_id (user_id字符串);插入user_id值(“potato_luver”) (“beanbag_lyfe”) (“default_username”) (“the_king”)(“個新手”)(“佛羅多”),(“data_the_kid”) (“el_matador”) (“the_wiz”);創建函數get_ping()返回INT返回INT (rand () * 250);創建函數is_active當rand()()返回布爾返回情況> .25然後真的還假的結束;
寫入數據格式以外的三角洲湖是罕見的磚。這裏提供的代碼寫入JSON,模擬外部係統可能轉儲結果從另一個係統對象存儲。
複製和運行以下代碼編寫一批原始JSON數據:
——寫一批新數據的數據源插入成user_ping_raw選擇*,get_ping()平,current_timestamp()時間從user_id在哪裏is_active()=真正的;
您必須創建一個目標三角洲湖表才能使用複製成。在磚運行時的11.0及以上,您不需要提供任何其他比你的表名創建表聲明。對於磚之前的版本中運行時,您必須提供一個模式在創建一個空表。
創建表
複製和運行下麵的代碼來創建你的目標差值表和加載數據從您的資料來源:
——創建目標表和數據加載創建表中如果不存在user_ping_target;從${複製到user_ping_target c。源}FILEFORMAT = JSON FORMAT_OPTIONS ("mergeSchema" = "true") COPY_OPTIONS ("mergeSchema" = "true")
因為這個動作是等冪的,您可以運行很多次但數據隻會加載一次。
您可以運行一個簡單的SQL查詢來手動檢查這個表的內容。
複製並執行以下代碼預覽表:
——檢查更新表選擇*從user_ping_target
您可以重新運行步驟2 - 4多次土地新批次隨機原始JSON數據的來源,冪等負載他們三角洲湖複製成,和預覽結果。嚐試運行這些步驟的順序或多次模擬多個批次的原始數據被寫入或執行複製成多次沒有新數據到達。
當你完成本教程,你可以清理相關資源如果你不再想要他們。
下降並運行下麵的代碼複製到數據庫,表,並刪除所有數據:
%python#刪除數據庫和表和刪除數據火花。sql(“數據庫,如果存在美元下降{c.database}級聯”)dbutils。fs。rm(源,真正的)
停止你的計算資源,去集群選項卡,終止您的集群。
的複製到參考文章