映射数据流可以使用参数化 Parquet 数据集吗?

问题描述

感谢您的光临。

我正在尝试在 Azure Synapse 工作区中开发映射数据流(因此我相信这也适用于 ADFv2),该工作区采用 Delta 输入并将其直接转换为 Parquet 格式的输出使用指向带有参数化文件系统和文件夹的 ADLSGen2 的 Parquet 数据集的相关细节,而不是硬编码的文件系统和文件夹,因为这将需要创建太多数据集,因为有太多感兴趣的文件夹在数据湖中。

enter image description here

映射数据流:

enter image description here

当我尝试将其用作映射数据流中的源时,调试配置(以及父管道配置)将适当地要求我输入这些参数,我很乐意输入。

然后,一旦我尝试调试或运行管道,我就会在不到 1 秒的时间内收到此错误

{
"Message": "ErrorCode=InvalidTemplate,ErrorMessage=The expression 'body('DataFlowDebugExpressionResolver')?.50_DeltaToParquet_xxxxxxxxx?.ParquetCurrent.directory' is not valid: the string character '_' at position '43' is not expected."
}

RunId: xxx-xxxxxx-xxxxxx

错误消息不是很具体,不知道我应该在哪里查看。

我尝试用硬编码的 Parquet 数据集替换参数化 Parquet 数据集,它在调试和管道运行模式下都能完美运行。但是,这并不能满足我的需求,即能够重用 Parquet 数据集,而不必为每个 Data Lake 文件夹创建特定的数据集。

Data Lake 文件系统中也没有空格。请参考这些看起来很像我的生产环境的参数:

  • 文件系统:prodfs001
  • 目录:synapse/workspace01/parquet/dim_mydim

先谢谢大家!

解决方法

目录名synapse/workspace01/parquet/dim_mydim在dim_mydim中有一个_,能不能试试替换下划线,或者可以用dimmydim测试是否有效。