gpt4 book ai didi

sql - 在 Azure Synapse 专用/无服务器 SQL 池中使用增量表

转载 作者:行者123 更新时间:2023-12-04 15:04:39 25 4
gpt4 key购买 nike

我目前担任初级数据开发人员,最近看到一篇文章称 Azure Synapse 现在可以从 Delta 表创建 SQL 表。我尝试从 Delta Lake Storage V2 内部的 Delta 表创建 SQL 表,但在使用“PARQUET”作为文件格式时,该表填充了额外的冗余数据(文件夹中所有快照的所有数据),并且通配符来读取文件。

我尝试为我的表创建外部文件格式,但 Synapse 不接受“DELTA”作为数据类型。我使用“PARQUET”作为文件格式,并在 Delta 表上使用 VACUUM 来仅保留其最新快照。每当我设置特定文件的路径或 Delta 表中只有一个 snappy.parquet 文件时,数据就会正确打印。

基本上有没有办法创建一个 Synapse 表/外部表来从 Delta 表获取数据?如果没有,有没有办法阻止 Azure Deltalake 在每次写入/更新/删除新数据时创建新快照?

使用的脚本:

IF NOT EXISTS (SELECT * FROM sys.external_file_formats WHERE name = SynapseParquetFormat') 
CREATE EXTERNAL FILE FORMAT [SynapseParquetFormat]
WITH ( FORMAT_TYPE = PARQUET)
GO

IF NOT EXISTS (SELECT * FROM sys.external_data_sources WHERE name = 'ExtSource')
CREATE EXTERNAL DATA SOURCE [ExtSource]
WITH (
LOCATION = '*',
)
GO

CREATE EXTERNAL TABLE dbo.ext_table (
[CostCentre] varchar(8000),
[CostCentre_MemberId] int
)
WITH (
LOCATION = 'dimensions/Dim_Example/*.snappy.parquet',
-- WILDCARD IF THERE IS ONLY ONE FILE OR LATEST FILE NEEDS TO BE SPECIFIED
DATA_SOURCE = [ExtSource],
FILE_FORMAT = [SynapseParquetFormat]
)
GO

/* 使用“*”是因为使用了客户端的数据路径 */

最佳答案

Query Delta Lake format in serverless Synapse SQL pool is currently in public preview.

注意:此预览版未提供服务级别协议(protocol),不建议用于生产工作负载。某些功能可能不受支持或功能可能受到限制。

此功能处于公共(public)预览阶段,存在一些已知问题和限制。查看 Synapse serverless SQL pool self-help page 上的已知问题.

更多详情请参阅Query Delta Lake files (preview) using serverless SQL pool in Azure Synapse Analytics .

关于sql - 在 Azure Synapse 专用/无服务器 SQL 池中使用增量表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66386446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com