DataBricks:将数据插入 Delta Table 的最快方法?
DataBricks: Fastest Way to Insert Data Into Delta Table?
我有一些 table 文件大小只有几 MB,我想将其捕获为增量表。向其中插入新数据需要非常长的时间,15 分钟以上,我对此感到惊讶。
我猜,罪魁祸首是 table 非常小;这些 table 中有 300 多列。
我尝试了以下方法,前者比后者快(不出所料(?)):(1) INSERT INTO
, (2) MERGE INTO
.
在将数据插入增量表之前,我应用了一些 Spark 函数来清理数据,然后最后将其注册为临时文件 table(例如,INSERT INTO DELTA_TBL_OF_INTEREST (cols) SELECT * FROM tempTable
有什么关于加速处理琐碎数据的建议吗?
如果您在将数据放入目标 table 之前使用 PySpark 执行数据转换,那么您不需要进入 SQL 级别,您可以使用append
模式。
如果您使用的是注册 table:
df = ... transform source data ...
df.write.mode("append").format("delta").saveAsTable("table_name")
如果您使用的是文件路径:
df = ... transform source data ...
df.write.mode("append").format("delta").save("path_to_delta")
我有一些 table 文件大小只有几 MB,我想将其捕获为增量表。向其中插入新数据需要非常长的时间,15 分钟以上,我对此感到惊讶。
我猜,罪魁祸首是 table 非常小;这些 table 中有 300 多列。
我尝试了以下方法,前者比后者快(不出所料(?)):(1) INSERT INTO
, (2) MERGE INTO
.
在将数据插入增量表之前,我应用了一些 Spark 函数来清理数据,然后最后将其注册为临时文件 table(例如,INSERT INTO DELTA_TBL_OF_INTEREST (cols) SELECT * FROM tempTable
有什么关于加速处理琐碎数据的建议吗?
如果您在将数据放入目标 table 之前使用 PySpark 执行数据转换,那么您不需要进入 SQL 级别,您可以使用append
模式。
如果您使用的是注册 table:
df = ... transform source data ...
df.write.mode("append").format("delta").saveAsTable("table_name")
如果您使用的是文件路径:
df = ... transform source data ...
df.write.mode("append").format("delta").save("path_to_delta")