【问题标题】:Does Synapse have the ability to work with semi-structured data?Synapse 是否有能力处理半结构化数据?
【发布时间】:2020-12-21 12:45:26
【问题描述】:

我的数据湖中有网络应用日志。一些日志条目具有其他人没有的字段。我可以直接在 Synapse 中处理这些数据,还是必须先使用 ADF 对其进行标准化以匹配 Synapse 中的架构?

【问题讨论】:

    标签: azure-data-lake azure-synapse


    【解决方案1】:

    您真正应该关注的一个 Azure Synapse 功能是 serverless SQL pools, (以前称为 SQL on-demand)目前处于预览状态。它可以处理数据湖中的 JSON、parquet 和 csv 文件。

    您的数据湖中的同一位置是否有不同的网络日志(按文件名区分),或者单个文件中有不同的记录?如果是前者,您可以简单地编写 SQL 按需 T-SQL 语句并使用 filename 函数过滤文件名,例如:

    SELECT
        r.filename() AS [filename],
        *
    FROM OPENROWSET(
        BULK 'csv/taxi/yellow_tripdata_2017-*.csv',
            DATA_SOURCE = 'SqlOnDemandDemo',
            FORMAT = 'CSV',
            PARSER_VERSION = '2.0',
            FIRSTROW = 2) 
            WITH (C1 varchar(200) ) AS [r]
    WHERE
        r.filename() IN ('yellow_tripdata_2017-10.csv', 'yellow_tripdata_2017-11.csv', 'yellow_tripdata_2017-12.csv');
    

    示例查询改编自 Microsoft 文章 here。您可以看到您不必提前知道架构。

    会有一些东西可以区分它们,例如逗号的数量、记录前面的某种标识符等,如果是这种情况,请发布更多详细信息和示例数据。

    【讨论】:

      【解决方案2】:

      简短的回答是否定的(假设它不是 json 日志)。您不能使用 Azure Synapse 的 T-SQL 加载此类数据。你必须先转换它。


      Azure Synapse 不仅仅是一个数据库。它是一个提供与分析相关的服务的保护伞。 SQL 池(Synapse DB)就是其中之一。

      https://docs.microsoft.com/en-us/azure/synapse-analytics/overview-what-is

      它还提供编排功能:https://docs.microsoft.com/en-us/azure/synapse-analytics/get-started-pipelines

      这对你来说是个大问题。

      如果不是一次性的,ADF 可能会变得很昂贵。

      【讨论】:

        猜你喜欢
        • 2016-08-22
        • 2021-05-11
        • 2010-09-18
        • 1970-01-01
        • 2019-12-10
        • 2015-09-03
        • 2011-11-16
        • 2019-08-24
        • 1970-01-01
        相关资源
        最近更新 更多