【问题标题】:Azure Data Factory Export SQL output to blobstorageAzure 数据工厂将 SQL 输出导出到 Blob 存储
【发布时间】:2021-10-08 19:06:12
【问题描述】:

我正在使用带有以下结构的物理表的 Azure SQL 数据库:

create table ind_metadata_reportages.ind_datadictionary (
 code           nvarchar(250)
,name           nvarchar(250)
,EntiteitNaam   nvarchar(255)
,AttribuutNaam  nvarchar(250)
,Contstraint    nvarchar(250)
,DataType       nvarchar(250)
)

要从表格内容生成 DDL,我使用以下语句:

declare @table_name     varchar(255)
      , @attribute_name varchar(255)
      , @datatype       varchar(255)
      , @sql            nvarchar(max)
      , @previous_table varchar(255) = ''
      , @schema  varchar(255) = 'ind_logische_datamodel'
      , @ind_next int = 0

declare c_ddl cursor for
select entiteitnaam, attribuutnaam, datatype
from ind_metadata_reportages.ind_datadictionary

open c_ddl

fetch next from c_ddl into @table_name, @attribute_name, @datatype 

while @@fetch_status = 0
begin
    
    -- start van de tabel
    if @previous_table = '' and @ind_next = 0
    begin 
        set @previous_table = @table_name 
        set @sql = 'CREATE TABLE ' + @schema + '.' + @previous_table + '( 
        ' + @attribute_name +  ' ' + @datatype
        set @ind_next = 1
        
    end
    
    -- einde van de tabel
    if @previous_table != @table_name  and  @ind_next = 0
    set @sql =  @SQL + N' );
     
    CREATE TABLE ' + @schema + '.' + @previous_table + '( '     
    + @attribute_name +  ' ' + @datatype
    set @previous_table = @table_name
        
    if @previous_table = @table_name and @ind_next = 0 
    BEGIN 
        set @sql = @sql + N'
        , ' + @attribute_name +  ' ' + @datatype  
        set @ind_next = 1
    END
    
    set @ind_next = 0
    fetch next from c_ddl into @table_name, @attribute_name, @datatype 
end

print @sql

close c_ddl
deallocate c_ddl

我希望最终打印的输出保存在 Azure Blob 存储上的文件中。你知道如何使用 Azure 数据工厂解决这个问题吗?

非常感谢 埃里克

【问题讨论】:

    标签: azure-sql-database azure-data-factory-2


    【解决方案1】:

    您可以通过多种方式做到这一点。

    1. 围绕它创建一个存储过程,并将您的打印结果作为包含一列的数据集返回。
    2. 在您的数据库中创建一个临时表并将您的输出保存在 int 中。

    在 ADF 中,您执行从存储过程或表到 Blob 存储中的文件的正常复制功能。

    【讨论】:

    • 感谢弗罗德的快速响应!我已经创建了一个存储过程和一个执行存储过程的管道!我已经用图片更新了问题。但是如何将该值从列传递到 Blob 存储中的文件?
    • 您可以使用复制数据活动从表中读取数据并将其复制到 Blob 存储中。
    猜你喜欢
    • 2019-01-26
    • 2016-08-30
    • 2021-01-26
    • 2018-09-20
    • 2019-06-10
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    相关资源
    最近更新 更多