代码之家  ›  专栏  ›  技术社区  ›  Jānis

如何为Dynamics365财务和运营表创建Synapse外部表

  •  0
  • Jānis  · 技术社区  · 1 年前

    我在Azure Synapse中有一个数据湖,它是Dynamics365 Finance and Operations-CustTable中的一个表。

    数据湖结构:

    xxx
    - Tables
    -- Common
    --- Customer
    ---- Main
         CustTable.cdm.json
         config.json
         Main.manifest.cdm.json
    ----- CustTable
          CUSTTABLE_00001.csv
          index.json
    

    数据文件CUSTTABLE_00001.csv不包含标头。

    如何使用正确的表头和列格式配置创建外部表CustTable?唯一的方法是手动操作吗?

    看起来文件CustTable.cdm.json包含头配置。

    我在Synapse中制作了外部表新SQL脚本>创建外部表,但它不能使脚本具有正确的头和列配置。

    示例:

    CREATE EXTERNAL TABLE [dbo].[test] (
        [C1] bigint,
        [C2] nvarchar(100),
        [C3] nvarchar(100),
    

    可以方便地制作外桌吗?

    0 回复  |  直到 1 年前
        1
  •  1
  •   Aswin    1 年前

    由于数据文件不包含标头,因此只需要在Synapse SQL池中手动定义外部表脚本中的列名。没有从中推断列名和类型的选项 CustTable.cdm.json 外部表脚本中的文件。

    CREATE EXTERNAL TABLE [dbo].[CustTable]
    (
        [Field1] [datatype],
        [Field2] [datatype],
        [Field3] [datatype],
        ...
    )
    WITH
    (
        LOCATION = 'CustTable_00001.csv',
        DATA_SOURCE = <your_data_lake_data_source>,
        FILE_FORMAT = <your_file_format>
    )
    

    此处替换 <field1> <datatype> 使用配置文件中的必需值。