Eventhouse 和 KQL 数据库部署管道与 Git 集成(预览版)

Eventhouse 和 KQL 数据库与 Microsoft Fabric 中的生命周期管理功能集成,可在产品的整个生命周期内实现所有开发团队成员之间的标准化协作。 此功能通过 Git 集成部署管道提供。

在本文中,你将了解通过 Microsoft Fabric 的生命周期管理为 Eventhouse 和 KQL 数据库提供的配置选项。

Eventhouse 和 KQL 数据库 Git 集成

Eventhouse 和 KQL 数据库是包含元数据和数据的项,工作区中的多个对象都会引用这些元数据和数据。 Eventhouse 和 KQL 数据库包含表、函数和具体化视图。 从开发工作流的角度来看,以下依赖对象可能会引用 Eventhouse 和 KQL 数据库:

Git 集成适用于 Eventhouse 和 KQL 数据库的平台和数据级别。

平台级别集成

以下 Eventhouse 和 KQL 数据库信息在与 Git 连接的工作区中进行序列化和跟踪:

  • Eventhouse

    • 名称
    • 描述
    • 逻辑 guid
  • KQL 数据库

    • 名称
    • 描述
    • 缓存策略
    • 保留策略
    • 逻辑 guid

数据级别集成

数据级别集成是通过使用 KQL 脚本创建或修改数据库对象架构、属性和策略实现的。 但是,需要注意的是,并非 KQL 脚本支持的所有命令都与 Microsoft Fabric ALM 兼容。

  • KQL 数据库

    KQL 脚本支持以下数据库对象:

    • 函数
    • 表策略更新
    • 列编码策略
    • 具体化视图
    • 表引入映射

    有关受支持命令的信息,请参阅 KQL 数据库文件下的 DatabaseSchema.kql 文件说明。

Git 集成表示形式

与 Git 同步的每个 Eventhouse 和 KQL 数据库项都会出现在各自的文件夹中,命名格式如下:<ItemName>.<ItemType>,其中 <ItemName> 是项的名称,<ItemType> 是项的类型。 例如,对于名为 Example 的 Eventhouse,它包含一个名为 ExampleDB 的 KQL 数据库,Git 存储库中会出现以下文件夹

  • Example.Eventhouse
  • ExampleDB.KQLDatabase

Eventhouse 文件

以下文件包含在 Eventhouse 文件夹中:

  • .platform

    该文件使用以下架构来定义 Eventhouse:

    {
      "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json",
      "metadata": {
        "type": "Eventhouse",
        "displayName": "",
        "description": ""
      },
      "config": {
        "version": "2.0",
        "logicalId": ""
      }
    }
    
  • EventhouseProperties.json

    通过该文件,可以为 Eventhouse 项配置平台级别设置。

KQL 数据库文件

以下文件包含在 KQL 数据库文件夹中:

  • .platform

    该文件使用以下架构来定义 KQL 数据库:

    {
      "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json",
      "metadata": {
        "type": "KQLDatabase",
        "displayName": "",
        "description": ""
      },
      "config": {
        "version": "2.0",
        "logicalId": ""
      }
    }
    
  • DatabaseProperties.json

    该文件使用以下架构为 KQL 数据库项配置平台级别设置:

    {
      "databaseType": "ReadWrite",
      "parentEventhouseItemId": "",
      "oneLakeCachingPeriod": "P36500D",
      "oneLakeStandardStoragePeriod": "P36500D"
    }
    

    下表描述了 DatabaseProperties.json 文件中的属性:

    properties 说明
    databaseType 有效值:ReadWrite
    parentEventhouseItemId 父级 Eventhouse 的逻辑 ID。 此属性不应修改。
    oneLakeCachingPeriod 缓存策略的数据库级别设置。
    oneLakeStandardStoragePeriod 保留策略的数据库级别设置。
  • DatabaseSchema.kql

    该文件是一个 KQL 脚本,用于配置 KQL 数据库的数据级别设置。 它会在 KQL 数据库同步到 Git 时自动生成。 该文件将在同步到 Fabric 工作区时执行。

    可以通过添加或修改以下受支持的命令来更改此脚本:

    Database 对象 支持的命令
    create 或 merge
    函数 create 或 alter
    表策略更新 Alter
    列编码策略 Alter
    具体化视图 create 或 alter
    表引入映射 create 或 alter

    下面是一个 KQL 脚本示例,用于创建表及其引入映射。

    // KQL script
    // Use management commands in this script to configure your database items, such as tables, functions, materialized views, and more.
    
    .create-merge table SampleTable (UsageDate:datetime, PublisherType:string, ChargeType:string, ServiceName:string, ServiceTier:string, Meter:string, PartNumber:string, CostUSD:real, Cost:real, Currency:string)
    .create-or-alter table SampleTable ingestion csv mapping 'SampleTable_mapping' "[{'Properties':{'Ordinal':'0'},'column':'UsageDate','datatype':''},{'Properties':{'Ordinal':'1'},'column':'PublisherType','datatype':''}]"