【问题标题】:When writing a csv file to Azure Blob storage, can I configure SSIS to represent NULL as BLANK instead of \N?将 csv 文件写入 Azure Blob 存储时,是否可以将 SSIS 配置为将 NULL 表示为 BLANK 而不是 \N?
【发布时间】:2019-10-05 05:07:03
【问题描述】:

我有一个 SSIS 包,它查询分析服务数据库并将结果作为 csv 文件写入 Azure Blob 存储。

包装非常简单,如下所示。我的问题是 NULL 值表示为“\N”,我需要它们为空白。

Azure Blob 目标数据流组件中似乎没有 NULL 处理属性。我是否遗漏了什么/有没有办法改变这个组件处理 NULL 值的方式?

这是查询:

EVALUATE
VAR Customers_csv =
    SELECTCOLUMNS (
        Customers,
        "CustomerID", Customers[CustomerID],
        "State", Customers[State]
    )
RETURN
    Customers_csv

这是 csv 输出。第三条记录为NULL。

CustomerID,State
637099,Kentucky
316102,Kentucky
535357,\N
733735,Kentucky

【问题讨论】:

  • OLAP 模式下的分析服务不支持空值,不确定表格。 "\N" 看起来像您维度中的一个值。您可以在数据流中添加表达式,将“\N”替换为“空白”。
  • 感谢 Piotr 的回复。 \N 仅在 SSIS csv 文件输出中,它不存在于 AAS 多维数据集中。此外,当我在 DAX Studio 中执行 DAX 时,“空白”值确实是空白的。仅当 SSIS 将 csv 文件写入 Azure Blob 存储时才会出现问题。

标签: ssis azure-storage azure-analysis-services


【解决方案1】:

您可以使用以下表达式简单地添加派生列转换:

REPLACE(REPLACENULL([State],""),"\\N","")

这会将Nulls 和\N 值替换为空白字符串。


更新 1

经过搜索,看起来\N 符号用于表示NULL 值。检查以下链接以了解一些解决方法:

【讨论】:

  • 感谢您的回答哈迪,但这不起作用。我使用以下表达式在 OLE DB 源和 Azure Blob 目标之间添加了派生列转换:REPLACE(REPLACENULL([State],""),"\\N","")。但是,该文件仍然为 NULL/Blank 记录创建了 \N。
  • @datalore 我更新了我的答案,检查我提供的链接
  • 感谢您提供这些链接。看来它们仅适用于 Azure 数据工厂,不适用于 SSIS。
  • @datalore 我不认为你可以在 SSIS 中做任何事情
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 2020-02-02
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多