azure - 我需要在特定版本的 Delta 表之上创建一个 View 。有没有办法在 Synapse 中并使用 T-SQL 来完成此操作?

标签 azure t-sql azure-synapse delta-lake

我的 Azure Data Lake Storage Gen2 (ADLS Gen2) 帐户中存储了一个 Delta 表。当 Synapse 管道更新此 Delta 表时,我想在最新版本的 Delta 表之上自动创建一个 View 。该 View 应该允许我直接查询数据,而无需依赖笔记本中的手动时间旅行操作。如何在 Azure Synapse 中设置此自动 View 创建? 场景:我不允许使用任何 Synapse 笔记本或 Databricks

enter image description here

我创建了一个数据流来更新我的增量表并最终创建最新版本的 View ,但找不到这样的功能。

最佳答案

要在 Delta 表上创建最新版本的 View ,您需要使用突触管道调用存储过程,该存储过程将在最新版本上创建 View 。

首先创建一个存储过程来在增量表上创建 View 。

示例存储过程:

create PROCEDURE crdeview
AS
BEGIN
exec ('DROP VIEW IF EXISTS samplev1;')
exec ('CREATE VIEW samplev1 AS
    SELECT * 
    FROM OPENROWSET(
            BULK ''https://stacc name.dfs.core.windows.net/fsnp2/'',
            FORMAT = ''delta''
            )
    WITH (
        [Id] Int,
        [name] VARCHAR(100)
    ) AS [r];')
End

上述过程将删除以前的 View 并使用新版本的增量文件创建新 View 。

然后使用存储过程事件从突触管道到突触池调用此存储过程。

enter image description here

并将存储事件触发器添加到管道中,以在新版本添加到增量文件时触发管道。

enter image description here

输出:

enter image description here

关于azure - 我需要在特定版本的 Delta 表之上创建一个 View 。有没有办法在 Synapse 中并使用 T-SQL 来完成此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77040406/

相关文章:

sql服务器: Any way to group records by date based on the dates of other records?

t-sql - 查询sybase ase中的输出文件

azure - 外部表Azure Synapse不返回数据

python - 在 Synapse 的 SQL 数据库中保存 PySpark 数据帧时出现错误 "IllegalArgumentException: KrbException: Cannot locate default realm"

c# - 将类对象作为消息发送到 Azure 队列存储

Azure 环境配置搞砸了 AJAX 调用? (Prismic、React、GraphQL、GatsbyJS)

python - 在 Azure 上使用 OpenCV 部署 Python Flask 应用程序的最佳方式

仅在某些实例上出现 Azure WebJob DB 连接错误

T-SQL:选择最小值和最大值的每个实例

azure - 预定 1 :1 copy of tables between Azure SQL databases using Data Factory without specifying table schema