【问题标题】:SSIS - Power Query Source: setting connection at runtimeSSIS - Power Query Source:在运行时设置连接
【发布时间】:2023-03-18 15:53:01
【问题描述】:

我正在尝试以通用方式从 SSIS (VS2019) 使用 Power Query 源组件。 这个想法是使用 for each 循环来加载和转换 Excel 文件。在运行时,我需要设置每个文件的连接管理器属性以及要在文件上执行的 PQY 脚本。 到目前为止,我所做的是尝试在脚本组件中创建一个 JSON 连接字符串并将连接字符串分配给连接管理器。它一直说该文件需要凭据。 会有人经历过那种开发吗?到目前为止,所有文件的结构都相同,元数据是否也需要刷新?

[编辑] 1. 在控制流中,我正在检索我想从数据库中应用的 PQY 脚本。 在转换之前,脚本是这样开始的:


让 Source = Excel.Workbook(File.Contents("path_to_a_file.xlsx"),null,true),RawData_Sheet = Source{[Item="Table1",Kind="Table"]}[Data]... "


  1. 在 C# 脚本任务中,我将 excel 文件的路径替换为当前文件变量。 M 脚本存储在 PQY 组件中使用的变量中。 然后 C# 脚本将更新 PQY 连接管理器以针对适当的文件: ConnectionManager _conn = Dts.Connections["Power Query 连接管理器"]; String _ConnectString = "[{kind:File,path:path_to_a_file.xlss,AuthenticationKind:Windows,Username:myusername,Password:mypassword}]"; _conn.ConnectionString = _ConnectString;

  2. PQY 组件保持不变,连接到 ["Power Query Connection Manager"] 并从我设置的变量中获取其脚本。 PQY configuration screen

感谢您对此的任何提示,

奥利维尔

【问题讨论】:

  • 如果可能,请添加一些屏幕截图和示例数据的步骤。所以有人可以研究它并给出一些解决方案。

标签: excel ssis metadata visual-studio-2019 powerquery


【解决方案1】:

我无法解决 PQ 的具体细节,但数据流中的通用任何内容都不起作用。

数据流任务之所以有效,是因为它在源和目标之间建立了严格的契约。这些具有这些数据类型的列将在运行期间发挥作用。这是一个设计时契约,因为它允许运行时引擎根据系统可以支持多少数据缓冲区来分配资源。每行是 X 字节,我们有 Y 字节的可用内存,所以 Z 缓冲了相当于数据和并行性的东西。

希望我能告诉你一个更好的故事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    相关资源
    最近更新 更多