我有一个 Parquet 文件并创建了一个新的外部表,但与突触中的普通表相比,性能非常慢。你能告诉我如何克服这个问题吗?
最佳答案
非常广泛的问题。所以我会给出广泛的答案:
- 使用普通表。外部表的“普通表”的性能很难被超越。 “普通表”是指使用
CREATE TABLE
在专用SQL池中创建的表。如果您重复查询一个或多个表中的数据,并且每个查询都不同(分组、联接、选定列),那么您无法获得具有外部表的“普通”表的性能。 - 了解并应用基础 best practices :
使用您正在做的 Parquet 格式。
选择正确的分区列并通过将分区存储到不同的文件夹或文件名来对数据进行分区。
如果查询针对单个大文件,您可以将其拆分为多个较小的文件,从而受益匪浅。
尽量将 CSV(如果使用 csv)文件大小保持在 100 MB 到 10 GB 之间。
使用正确的数据类型。
手动创建 CSV 文件的统计信息
使用 CETAS 增强查询性能和联接
...还有更多。
关于azure - Azure Synapse 中的外部表性能非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66608701/