![](/img/trans.png)
[英]Accessing Delta Lake Table in Databricks via Spark in MLflow project
[英]how to insert the new incremental data(keeping old records) into delta lake table azure databricks table from Source snowflake table
我正在嘗試將數據從雪花表增量插入 azure databricks delta Lake 表。
現有表數據
id 姓名 工資 部門 地址 createdate updateddate enddate
1 aaa 5000 制葯美國 08-23-2022 01-01-9999 01-01-9999
2 bbb 6000 機械英國 08-23-2022 01-01-9999 01-01-9999
3 ccc 7000 制葯 singpare 08-23-2022 01-01-9999 01-01-9999
添加到表中的新數據
id 姓名 工資 部門 地址 createdate updateddate enddate
1 AA 5000 制葯 德國 08-24-2022 01-01-9999 01-01-9999
4 fff 8000 IT 芬蘭 08-24-2022 01-01-9999 01-01-9999
表中的預期數據
id 姓名 工資 部門 地址 createdate updateddate enddate
1 aaa 5000 Pharma 美國 08-23-2022 08-24-2022 08-24-2022
2 bbb 6000 機械英國 08-23-2022 01-01-9999 01-01-9999
3 ccc 7000 制葯 singpare 08-23-2022 01-01-9999 01-01-9999
1 AA 5000 制葯 德國 08-24-2022 01-01-9999 01-01-9999
4 fff 8000 IT 芬蘭 08-24-2022 01-01-9999 01-01-9999
嘗試使用 INSERT 語句。 如果您的數據以 dataframe 的形式存儲在 memory 中,則使用以下命令創建臨時視圖:
snowflakedf.createOrReplaceTempView("<ALIAS>")
然后
INSERT INTO <EXISTING_TABLE_NAME> (id,name,salary,dept,address,createdate,updateddate,enddate)
SELECT * FROM <ALIAS>
有關它如何工作的更多信息,請查看:
https://docs.databricks.com/sql/language-manual/sql-ref-syntax-dml-insert-into.html
您可以使用MERGE
將數據從Snowflake 表增量加載到 Databricks delta Lake 表。
#create view with snowflake table data loaded into dataframe
df.createOrReplaceTempView("input_snowflake_df")
#create delta table if not exists
spark.sql("create table if not exists my_delta using delta location '<delta lake location>'")
%sql
-- change the condition, matched and not matched operations as required
-- the following is just an example for demonstration.
MERGE into my_delta as d USING input_snowflake_df as ip
ON d.id = ip.id and d.cols = ip.name
WHEN MATCHED THEN
update set d.id=ip.id
WHEN NOT MATCHED THEN
INSERT (d.id,d.cols) values (ip.id,ip.name)
以下是我的 output 圖像用於演示:
雪花表數據加載到 dataframe 並創建一個臨時視圖。
增量表中的現有數據。
合並后:
你可以參考這個微軟官方文檔,通過幾個例子來了解更多關於 MERGE 語句的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.