代码之家  ›  专栏  ›  技术社区  ›  RichardAdams

在ADF中,使用摄取功能提取数据效果良好,但无法使用数据流提取数据。有什么建议吗?

  •  0
  • RichardAdams  · 技术社区  · 3 年前

    我的目标: 使用Synapse源和一些Power Query转换创建一个数据流,然后将结果加载到Synapse接收器中。数据流通过验证。当我将数据流移动到管道中(作为管道中唯一的东西)时,它通过了验证,然后在调试中失败。

    我所做的尝试奏效了: (1) 创建了与Azure Blob Storage和Azure Synapse Analytics的链接服务, (2) 为源和汇创建数据集, (3) 使用摄取功能创建了一个管道,从Synapse源读取数据,暂存在blob存储中,并将数据复制到Synapse接收器

    什么不起作用: 创建了一个数据流,用于从Synapse源读取数据,暂存在blob存储中,并将数据复制到Synapse接收器。数据流验证工作正常。我将数据流拖放到管道画布上。管道验证正常,但在调试时终止。

    我以两种不同的方式运行此操作,更改链接服务中使用的帐户: (1) 使用我的帐户(参与者状态)。我收到一个错误,说我没有权限。我有足够的权限使用摄取功能复制数据,为什么我没有足够的权限通过数据流复制数据? This is the error I received

    (2) 使用管理员帐户。管道仍然失败,但错误现在指向主密钥。 This is the error I received

    0 回复  |  直到 3 年前
        1
  •  1
  •   Pratik Lad    3 年前

    根据你得到的错误,ADF数据流似乎正在使用polybase方法从突触分析中读取数据。

    连接要求在第一条指令之前存在所选Azure Synapse实例的数据库主密钥。在这种情况下,可以使用CREATE MASTER KEY命令创建密钥。

    如错误中所述,您可以在源数据库上创建主密钥或更改主密钥。

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'strong_password'
    

    或

    ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'strong_password';
    

    您可以直接在synapse SQL池中执行,也可以在数据流之前运行脚本活动。

    仅供参考,这可能是一个错误,我在我的环境中尝试了同样的方法,但最初我得到了和您相同的错误,但在运行了相同的复制活动并成功执行后,数据流也成功执行了。

    提出问题 here 同样

    成功执行:

    enter image description here