Azure Synapse,外部表或内部表的设计问题
Azure Synapse, design questions of External tables or Internal tables
我正在使用 SQL 池在 Azure Synapse 中设计数据仓库,但我遇到了一些设计问题。
上下文:我的计划是使用 Azure Data Lake Storage (ADLS) 加载分区的 Parquet 文件,然后使用 SQL 池创建外部表来查询这些文件。
我的问题是:
- 仅使用外部表提供解决方案在性能方面是否更好?也就是说,没有创建内部表,也没有 CTAS、BCP 或从 ADLS 复制方法到数据库中的存储。
- 是否可以在外部表中执行分区?按日期命名的文件夹组织镶木地板是否足够?
- 对外部表和内部表的用户并发度有什么影响?一些经验丰富的建议?
感谢您的宝贵时间。
乔什
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 的数据。
我正在使用 SQL 池在 Azure Synapse 中设计数据仓库,但我遇到了一些设计问题。
上下文:我的计划是使用 Azure Data Lake Storage (ADLS) 加载分区的 Parquet 文件,然后使用 SQL 池创建外部表来查询这些文件。
我的问题是:
- 仅使用外部表提供解决方案在性能方面是否更好?也就是说,没有创建内部表,也没有 CTAS、BCP 或从 ADLS 复制方法到数据库中的存储。
- 是否可以在外部表中执行分区?按日期命名的文件夹组织镶木地板是否足够?
- 对外部表和内部表的用户并发度有什么影响?一些经验丰富的建议?
感谢您的宝贵时间。 乔什
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 的数据。