提问人:Hernán 提问时间:10/9/2023 最后编辑:Hernán 更新时间:10/9/2023 访问量:53
Direct Parquet 源 (Spark Engine) 与“SQL-Select 外部表(指向该 Parquet)on Serverless SQL”源 (SQL Engine)
Direct Parquet source (Spark Engine) vs "SQL-Select external table (pointing to that Parquet) on Serverless SQL" source (SQL Engine)
问:
在管道中,在数据流中,我可以用作源:
- Parquet 文件
- 或对无服务器 SQL 上的外部表进行 SQL 查询,该表指向 Parquet 文件
假设接收器是另一个 parquet 文件,这两个选项中哪个更好?第一种选择更直接吗?
另一方面 如果我在“parquet 源”和接收器之间放置一个“过滤器序列”会怎样:这比在“无服务器 SQL 查询源”(第二个选项)中使用“where”子句进行过滤更好吗?
那是:
“实木复合地板水槽>过滤器>”实木复合地板源
比“选择...哪里。。。来源>镶木地板水槽“ ???
编辑:背后的真正问题是关于Spark Engine与SQL引擎
答:
0赞
Chen Hirsh
10/9/2023
#1
使用 Parquet 文件作为源可以为您提供一些灵活性,您可以使用参数直接查询一个文件,也可以仅查询自上次加载以来创建的文件。 此外,如果您需要更改源上的某些内容,您也不必更改外部表。
但是,在第二个问题中,通常最好提前筛选数据,而不是将所有数据带到数据流并在那里进行筛选。
如果适用,最佳选择是使用文件创建日期或读取特定文件夹来筛选数据流源中的文件。
评论
0赞
Hernán
10/9/2023
谢谢,我编辑了问题。我想知道的是,在这两个选项中,Spark Engine 的性能是否比 SQL Engine 更好
0赞
Chen Hirsh
10/10/2023
@Hernán,很难预测什么会给你带来最好的表现。您必须尝试这两个选项,并衡量性能时间和成本进行比较。
0赞
Hernán
10/11/2023
好吧,先验没有最好的选择。我认为直接镶木地板更好,认为SQL引入了一些额外的成本
评论