Compreender os armazéns de dados no Fabric

Concluído

Agora que compreende os fundamentos do data warehouse, vamos explorar o que a Microsoft Fabric oferece para armazenamento de dados.

Descreva um data warehouse da Fabric

Um Fabric data warehouse é uma base de dados relacional totalmente gerida, em escala empresarial, construída sobre o OneLake. Oferece capacidades T-SQL transacionais completas, incluindo instruções DDL (CREATE, ALTER, DROP) e instruções DML (INSERT, UPDATE, DELETE, MERGE), com total conformidade com ACID para consistência de dados.

Os dados são armazenados em formato aberto Delta no OneLake, o que significa que outras cargas de trabalho Fabric podem acessar os mesmos dados sem duplicação. Usa T-SQL para criar tabelas, carregar dados, construir vistas e procedimentos armazenados, e realizar transformações, tudo numa experiência SQL familiar.

As capacidades-chave incluem:

  • Suporte completo a T-SQL - Escrever instruções DDL e DML, incluindo MERGE para cenários upsert, usando a sintaxe familiar do SQL Server.
  • Totalmente gerido - Sem infraestrutura para configurar. Compute escala automaticamente e independentemente do storage.
  • Integração OneLake - Os dados do armazém são armazenados em formato Delta, e acessíveis por outros workloads do Fabric sem duplicação.
  • Consulta entre bases de dados - Consulta de dados entre armazéns e casas de lago sem copiar dados. Use uma nomenclatura em três partes (database.schema.table) para efetuar a junção de tabelas de armazém com tabelas lakehouse numa só consulta.
  • Ferramentas familiares - Conectar-se com SQL Server Management Studio (SSMS), Azure Data Studio ou qualquer cliente SQL através de ligações TDS padrão.
  • Assistência Copilot - O Copilot para Data Warehouse gera consultas SQL a partir de linguagem natural, fornece completude de código à medida que escreves e pode explicar ou corrigir consultas existentes no editor SQL.

Warehouse vs endpoint de análise SQL

Os workspaces Fabric podem conter dois tipos de itens baseados em SQL que servem propósitos diferentes.

Capacidade Armazém Ponto final de análise SQL
Ler dados Sim Sim
Escrever dados (INSERIR, ATUALIZAR, APAGAR, MESCLAR) Sim Não
Criar tabelas (DDL) Sim Não
Criar visualizações e procedimentos armazenados Sim Sim
Origem de dados Tabelas nativas de armazém Tabelas Delta Lakehouse

Usa um warehouse quando precisares de todas as capacidades de leitura/escrita em T-SQL. Usa o endpoint de análise SQL quando precisares de acesso SQL apenas de leitura aos dados do Lakehouse.

Crie um armazém de dados

Podes criar um data warehouse no Fabric a partir do hub create ou dentro de um workspace. Depois de criar um armazém vazio, pode adicionar tabelas, vistas e outros objetos.

Captura de ecrã da interface do Fabric com uma seta a apontar para o hub de criação.

Depois de criado o seu armazém, pode começar a criar tabelas e a carregar dados usando o query editor SQL no portal Fabric.

Ingerir dados num armazém

Existem várias formas de carregar dados num Fabric data warehouse:

  • COPY INTO - Carregamento em grande escala de dados de ficheiros externos (CSV, Parquet) no armazenamento Azure para tabelas de data warehouse.
  • OPENROWSET - Consultar ficheiros diretamente de armazenamento externo ou de localizações OneLake para análise ad hoc ou ingestão, sem criar previamente tabelas.
  • Pipelines e Dataflows - Use Data Factory pipelines ou Dataflows Gen2 para movimentação e transformação orquestrada de dados.
  • Consultas entre bases de dados - Consultar tabelas do lakehouse diretamente do data warehouse usando a nomenclatura de três partes, sem necessidade de copiar os dados.

Podes usar o COPY INTO comando T-SQL para carregar dados em massa a partir de ficheiros. Por exemplo, a seguinte instrução carrega dados de um ficheiro CSV para uma tabela:

COPY INTO dbo.Region
FROM 'https://mystorageaccount.blob.core.windows.net/data/Region.csv'
WITH (
    FILE_TYPE = 'CSV',
    CREDENTIAL = (
        IDENTITY = 'Shared Access Signature',
        SECRET = 'xxx'
    ),
    FIRSTROW = 2
)
GO

Captura de ecrã do editor de consultas SQL com uma consulta aberta.

Sugestão

Se tiver tabelas numa casa de lago que queira consultar a partir do seu armazém sem fazer alterações, use antes consultas entre bases de dados. Não precisas de copiar os dados.

Criar tabelas e carregar dados

Depois de criar um armazém e escolher um método de ingestão, o passo seguinte é definir as suas tabelas e carregar dados nelas.

Pode-se criar as tabelas usando instruções T-SQL CREATE TABLE. Defina colunas com tipos de dados apropriados para cargas de trabalho analíticas.

CREATE TABLE dbo.DimCustomer
(
    CustomerKey INT NOT NULL,
    CustomerAltKey NVARCHAR(10) NOT NULL,
    CustomerName NVARCHAR(100) NOT NULL,
    Region NVARCHAR(50) NULL
);
GO

CREATE TABLE dbo.FactSales
(
    SalesKey INT NOT NULL,
    CustomerKey INT NOT NULL,
    ProductKey INT NOT NULL,
    DateKey INT NOT NULL,
    SalesAmount DECIMAL(10,2) NOT NULL,
    Quantity INT NOT NULL
);
GO

Escolha tipos de dados que equilibrem precisão com eficiência de armazenamento. INT Use para colunas-chave, NVARCHAR para texto que pode conter caracteres especiais e DECIMAL para valores financeiros que exigem precisão.

Utilizar tabelas de staging para carregamento de dados

Um padrão comum no armazenamento de dados é armazenar dados brutos em tabelas de preparação antes de transformá-los e carregá-los em tabelas finais de dimensão e facto. As tabelas de staging refletem a estrutura dos seus dados de origem e funcionam como uma área de armazenamento temporária.

Depois de carregar os dados em tabelas de staging usando COPY INTO ou pipelines, você transforma e insere-os no seu modelo dimensional.

INSERT INTO dbo.FactSales (SalesKey, CustomerKey, ProductKey, DateKey, SalesAmount, Quantity)
SELECT
    s.OrderID,
    c.CustomerKey,
    p.ProductKey,
    d.DateKey,
    s.Amount,
    s.Qty
FROM dbo.StgSales AS s
INNER JOIN dbo.DimCustomer AS c ON s.CustomerID = c.CustomerAltKey
INNER JOIN dbo.DimProduct AS p ON s.ProductID = p.ProductAltKey
INNER JOIN dbo.DimDate AS d ON s.OrderDate = d.DateValue;
GO

Este padrão mantém os seus dados de origem intactos enquanto aplica regras de negócio e consultas de chave durante o processo de carregamento.

Entender os clones de tabelas

Pode criar clones de tabelas zero-copy num Data Warehouse Fabric. Os clones copiam metadados das tabelas enquanto continuam a referenciar os mesmos ficheiros de dados subjacentes no OneLake. Os dados em si não são duplicados, o que mantém os custos de storage baixos.

O seguinte exemplo de código mostra-lhe como criar um clone com T-SQL:

--Clone creation within the same schema
CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA;

Os clones de tabela são úteis para desenvolvimento e testes, recuperação de dados após um lançamento falhado e preservação de dados em pontos específicos do tempo para relatórios históricos.

Sugestão

Para mais informações, consulte a tabela Clone na documentação Microsoft Fabric.

Agora que compreende as capacidades de armazém da Fabric, vamos explorar como consultar e transformar os seus dados.