排查 Azure Synapse 无服务器 SQL 池上的 CREATE EXTERNAL TABLE AS SELECT (CETAS) 问题
适用对象:Azure Synapse Analytics
Azure Synapse 无服务器 SQL 池中的 CREATE EXTERNAL TABLE AS SELECT(也称为 CETAS)语句用于创建外部表并将查询结果导出到 Azure 存储 Blob 或 Azure Data Lake Storage Gen2。 本指南可帮助你实现有关使用 CETAS 导出数据的常见问题的最佳做法和解决方法。
常见问题解答
问题 | 建议 |
---|---|
是否可以将结果导出到单个文件? | 不正确。 由于无服务器 SQL 查询引擎的高度并行和可缩放性,无服务器 SQL 在使用 CETAS 将查询结果保存到存储时无法控制文件数。 解决方法: 或者,可以使用 Spark 笔记本将数据导出到存储。 请参阅 在存储帐户 中创建 CSV 和 Parquet 文件,了解如何将数据导出到单个 CSV 文件和 Parquet 文件。 |
是否可在第一次导出后修改导出的数据? | 不正确。 存储结果后,无法修改外部表中的数据。 CETAS 不会覆盖在第一次执行中创建的基础数据。 解决方法: 替代方法是,可新建一个写入其他文件夹的外部表。 |
支持哪些导出文件格式? | 目前仅支持 PARQUET 和 DELIMITEDTEXT。 不支持 DELIMITEDTEXT 格式的 Gzip 压缩。 有关更多详细信息,请参阅 无服务器 SQL 池中的 CETAS。 |
为何无法连接到存储? | - 请确保已为源存储帐户和目标存储帐户创建适当的凭据,这些凭据在控制无服务器 SQL 池的存储访问中指定。 - 请确保对源和目标存储帐户具有适当的 权限 。 |
如何使 CETAS 语句更具性能? | - 确保目标存储帐户位于无服务器 SQL 池终结点所在的同一区域。 在Azure 门户中,可以在存储帐户或工作区的“概述”窗格中找到存储帐户和工作区区域。 - 确保使用 CETAS 支持的数据类型。 |