Azure Synapse,外部表或内部表的设计问题

Azure Synapse, design questions of External tables or Internal tables

我正在使用 SQL 池在 Azure Synapse 中设计数据仓库,但我遇到了一些设计问题。

上下文:我的计划是使用 Azure Data Lake Storage (ADLS) 加载分区的 Parquet 文件,然后使用 SQL 池创建外部表来查询这些文件。

我的问题是:

感谢您的宝贵时间。 乔什

Is it better in terms of performance to provide the solution just with the external tables?

没有。内部表是分布式列存储,具有多级缓存,通常是 out-perform 个外部镶木地板表。内部表还支持 batch-mode 扫描、列存储排序、段消除、分区消除、物化视图和结果集缓存。

Is it possible to perform partitioning in external tables?

目前这在专用 SQL 池中是不可能的,参见 Folder Partition Elimination

How does affect the user concurrency to the external tables and the internal tables?

并发是查询性能的问题。您的查询执行得越快,会话放弃并发槽的速度就越快。因此,任何提高查询性能的方法都会提高有效并发性(在合理的查询运行时可以支持的并发用户数)。

无服务器 SQL 池目前具有更高级的功能,可以处理数据湖中存储为 Parquet 或 Delta 的数据。