Partilhar via


Pipelines de integração e implantação do Git

O Real-Time Intelligence integra-se aos recursos de gerenciamento do ciclo de vida do Microsoft Fabric, fornecendo colaboração padronizada entre todos os membros da equipe de desenvolvimento ao longo da vida útil do produto. Essa funcionalidade é fornecida por meio de pipelines de integração e implantação do git.

Neste artigo, você aprenderá sobre as opções de configuração disponíveis por meio do gerenciamento de ciclo de vida do Microsoft Fabric para Real-Time Intelligence.

Integração no Git

O Real-Time Intelligence suporta integração com o Git para eventhouses, Bancos de Dados KQL, conjuntos de consultas KQL e dashboards Real-Time. A integração do git permite que você acompanhe as alterações nesses itens em um espaço de trabalho conectado ao git. A integração fornece uma maneira de gerenciar o ciclo de vida desses itens, incluindo controle de versão, ramificação e mesclagem.

Todos os itens incluem metadados, e casas de eventos e bancos de dados KQL também contêm dados referenciados por vários objetos no espaço de trabalho.

Os seguintes elementos de metadados estão incluídos nos itens do Real-Time Intelligence:

  • Itens de banco de dados Eventhouse e KQL: tabelas, funções e exibições materializadas
  • Conjuntos de consultas KQL: guias e fontes de dados
  • Real-Time dashboards: fontes de dados, parâmetros, queries de base e tiles

Do ponto de vista do fluxo de trabalho de desenvolvimento, os seguintes objetos dependentes podem fazer referência a uma casa de eventos ou banco de dados KQL:

A integração git aplica-se em toda a plataforma para todos os itens e, ao nível dos dados, para event houses e bases de dados KQL.

Integração ao nível da plataforma

As informações a seguir são serializadas e rastreadas em um espaço de trabalho conectado ao git:

  • Casa de eventos

    • Nome
    • Descrição
    • GUID lógico
  • Base de dados KQL

    • Nome
    • Descrição
    • Política de Cache
    • Política de retenção
    • GUID lógico
  • Conjunto de consultas KQL

    • Nome
    • Versão
    • Separadores
    • Fontes de dados
  • Painel em Tempo Real

    • Nº de Identificação
    • eTag
    • versão_do_esquema
    • Título
    • Azulejos []
    • Consultas de base []
    • Parâmetros[]
    • Fontes de dados[]

Integração em nível de dados

A integração no nível de dados é obtida usando um script KQL para criar ou modificar esquemas, propriedades e políticas de objetos de banco de dados. No entanto, é importante observar que nem todos os comandos suportados em um script KQL são compatíveis com o Microsoft Fabric ALM.

  • Base de dados KQL

    Os seguintes objetos de banco de dados são suportados no script KQL:

    • Tabela
    • Função
    • Atualização da política de tabela de dados
    • Política de codificação de colunas
    • Visão materializada
    • Mapeamento de tabelas para ingestão

    Para obter informações sobre comandos suportados, consulte a descrição do arquivo DatabaseSchema.kql em Arquivos de banco de dados KQL.

Representação de integração do Git

Cada casa de eventos e itens do banco de dados KQL sincronizados com o git aparecem em sua própria pasta nomeada usando o seguinte formato: <ItemName>. <ItemType> onde <ItemName> é o nome do item e <ItemType> é o tipo do item. Por exemplo, para uma casa de eventos chamada Example que tem um único banco de dados KQL chamado ExampleDB, as seguintes pastas aparecem no repositório git:

  • Exemplo. Casa de eventos
  • ExemploDB. KQLDatabase

Arquivos da Eventhouse

Os seguintes arquivos estão contidos em uma pasta da casa de eventos:

  • .plataforma

    O arquivo usa o seguinte esquema para definir uma casa de eventos:

    {
      "$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

    O arquivo permite que você defina configurações no nível da plataforma para o item da casa de eventos.

Arquivos de banco de dados KQL

Os seguintes arquivos estão contidos em uma pasta de banco de dados KQL:

  • .plataforma

    O arquivo usa o seguinte esquema para definir um banco de dados 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

    O arquivo usa o seguinte esquema para definir as configurações no nível da plataforma para o item de banco de dados KQL:

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

    A tabela a seguir descreve as propriedades no DatabaseProperties.json arquivo:

    Propriedade Descrição
    tipo de banco de dados Valores válidos: ReadWrite
    parentEventhouseItemId O ID lógico do evento principal. Esse valor não deve ser modificado.
    oneLakeCachingPeriod Configuração de nível de banco de dados para a política de cache.
    oneLakeStandardStoragePeriod Configuração no nível do banco de dados para a política de retenção.
  • DatabaseSchema.kql

    O arquivo é um script KQL que define as configurações de nível de dados para o banco de dados KQL. Ele é gerado automaticamente quando o banco de dados KQL é sincronizado com o git. O arquivo é executado quando a sincronização com o seu espaço de trabalho Fabric é realizada.

    Você pode fazer alterações nesse script adicionando ou modificando os seguintes comandos suportados:

    Objeto de banco de dados Comandos suportados
    Tabela Criar ou mesclar
    Função Criar ou alterar
    Atualização da política de tabelas Alterar
    Política de codificação de colunas Alterar
    Visão materializada Criar ou alterar
    Mapeamento de ingestão de tabelas Criar ou alterar

    O exemplo a seguir é um script KQL para criar uma tabela e o respetivo mapeamento de ingestão.

    // 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':''}]"
    

Arquivos do conjunto de consultas KQL

O arquivo usa o seguinte esquema para definir um conjunto de consultas KQL:

{
  "queryset": {
    "version": "1.0.0",
    "tabs": [
      {
        "id": "",
        "title": "",
        "content": "",
        "dataSourceId": "Guid1"
      }
    ],
    "dataSources": [
      {
        "id": "",
        "clusterUri": "",
        "type": "AzureDataExplorer",
        "databaseName": ""
      },
      {
        "id": "Guid1",
        "clusterUri": "",
        "type": "Fabric",
        "databaseItemId": "",
        "databaseItemName": ""
      }
    ]
  }
}

Real-Time arquivos do painel

O arquivo usa o seguinte esquema para definir um Real-Time Dashboard:

{
  "$schema": "",
  "id": "",
  "eTag": "\"\"",
  "schema_version": "",
  "title": "",
  "tiles": [
    {
      "id": "",
      "title": "",
      "visualType": "",
      "pageId": "",
      "layout": {
        "x": ,
        "y": ,
        "width": ,
        "height":
      },
      "queryRef": {
        "kind": "",
        "queryId": ""
      },
      "visualOptions": {
        "multipleYAxes": {
          "base": {
            "id": "",
            "label": "",
            "columns": [],
            "yAxisMaximumValue": ,
            "yAxisMinimumValue": ,
            "yAxisScale": "",
            "horizontalLines": []
          },
          "additional": [],
          "showMultiplePanels":
        },
        "hideLegend": ,
        "legendLocation": "",
        "xColumnTitle": "",
        "xColumn": ,
        "yColumns": ,
        "seriesColumns": ,
        "xAxisScale": "",
        "verticalLine": "",
        "crossFilterDisabled": ,
        "drillthroughDisabled": ,
        "crossFilter": [
          {
            "interaction": "",
            "property": "",
            "parameterId": "",
            "disabled":
          }
        ],
        "drillthrough": [],
        "selectedDataOnLoad": {
          "all": ,
          "limit":
        },
        "dataPointsTooltip": {
          "all": ,
          "limit":
        }
      }
    }
  ],
  "baseQueries": [],
  "parameters": [
    {
      "kind": "",
      "id": "",
      "displayName": "",
      "description": "",
      "variableName": "",
      "selectionType": "",
      "includeAllOption": ,
      "defaultValue": {
        "kind": ""
      },
      "dataSource": {
        "kind": "",
        "columns": {
          "value": ""
        },
        "queryRef": {
          "kind": "",
          "queryId": ""
        }
      },
      "showOnPages": {
        "kind": ""
      },
      "allIsNull":
    },
  ],
  "dataSources": [
    {
      "id": "",
      "name": "",
      "clusterUri": "",
      "database": "",
      "kind": "",
      "scopeId": ""
    }
  ],
  "pages": [
    {
      "name": "",
      "id": ""
    }
  ],
  "queries": [
    {
      "dataSource": {
        "kind": "",
        "dataSourceId": ""
      },
      "text": "",
      "id": "",
      "usedVariables": [
        "",
        ""
      ]
    }
  ]
}