Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Tip
Microsoft Fabric Data Warehouse é um armazém relacional de escala empresarial baseado numa base de data lake, com uma arquitetura pronta para o futuro, IA incorporada e novas funcionalidades. Se és novo no data warehousing, começa pelo Fabric Data Warehouse. As cargas de trabalho existentes de pool SQL dedicado podem atualizar para o Fabric para acessar novas capacidades em ciência de dados, análise em tempo real e relatórios.
Os armazéns de dados tradicionais de sistemas de multiprocessamento simétrico (SMP) utilizam um processo de Extração, Transformação e Carregamento (ETL) para carregar dados. O pool SQL do Azure é uma arquitetura de processamento massivamente paralelo (MPP) que aproveita a escalabilidade e flexibilidade dos recursos de computação e armazenamento.
Em contraste, um processo de Extração, Carregamento e Transformação (ELT) pode tirar partido das capacidades integradas de processamento distribuído de consultas e eliminar recursos necessários para transformar os dados antes do carregamento.
Embora o pool SQL suporte muitos métodos de carregamento, incluindo opções não Polybase, como bulk copy program (bcp) e API SQL BulkCopy, a forma mais rápida e escalável de carregar dados é através do PolyBase. PolyBase é uma tecnologia que acede a dados externos armazenados no armazenamento Blob do Azure ou no Azure Data Lake Storage através da linguagem Transact-SQL (T-SQL).
Implementar Polybase ELT
Extrair, Carregar e Transformar (ELT) é um processo pelo qual os dados são extraídos de um sistema de origem, carregados num armazém de dados e depois transformados.
Os passos básicos para implementar um PolyBase ELT para pool SQL dedicado são:
- Extrai os dados de origem para ficheiros de texto.
- Armazena os dados no Azure armazenamento Blob ou no Azure Data Lake Storage.
- Prepara os dados para carregamento.
- Carregue os dados em tabelas de staging dedicadas do pool SQL usando PolyBase.
- Transforma os dados.
- Insera os dados nas tabelas de produção.
Para um tutorial de carregamento, veja Carregar o conjunto de dados do Táxis de Nova Iorque.
Para mais informações, consulte Padrões de carregamento e estratégias.
Extrair os dados de origem em ficheiros de texto
A obtenção de dados do sistema de origem depende do local de armazenamento. O objetivo é mover os dados para ficheiros de texto delimitados suportados pelo PolyBase.
Formatos de ficheiro externos PolyBase
O PolyBase carrega dados de ficheiros de texto delimitados codificados em UTF-8 e UTF-16. PolyBase também carrega a partir dos formatos de ficheiro Hadoop RC File, ORC e Parquet. O PolyBase também pode carregar dados a partir de ficheiros comprimidos Gzip e Snappy. Atualmente, o PolyBase não suporta ASCII estendido, formato de largura fixa ou formatos aninhados como WinZip, JSON e XML.
Se estiveres a exportar a partir de SQL Server, podes usar a ferramenta de linha de comandos bcp para exportar os dados para ficheiros de texto delimitados. A tabela seguinte lista tipos de dados Parquet mapeados para Azure Synapse Analytics.
| Tipo de dados Parquet | Tipo de dado SQL |
|---|---|
| tinyint | tinyint |
| smallint | smallint |
| int | int |
| bigint | bigint |
| boolean | bit |
| duplo | float |
| float | real |
| double | dinheiro |
| double | smallmoney |
| cadeia (de caracteres) | nchar |
| cadeia (de caracteres) | nvarchar |
| cadeia (de caracteres) | char |
| cadeia (de caracteres) | varchar |
| binário | binário |
| binário | varbinary |
| carimbo de data/hora | date |
| carimbo de data/hora | smalldatetime |
| carimbo de data/hora | datetime2 |
| carimbo de data/hora | datetime |
| carimbo de data/hora | tempo |
| date | date |
| decimal | decimal |
Armazene os dados no Azure Blob storage ou no Azure Data Lake Store
Para armazenar dados no Azure, pode movê-los para Azure Blob Storage ou Azure Data Lake Storage. Em qualquer local, os dados devem ser armazenados em arquivos de texto. O PolyBase pode carregar a partir de qualquer um dos locais.
Pode usar as seguintes ferramentas e serviços para transferir dados para o Armazenamento do Azure:
- O serviço Azure ExpressRoute melhora a taxa de transferência, o desempenho e a previsibilidade da rede. O ExpressRoute é um serviço que encaminha seus dados por meio de uma conexão privada dedicada ao Azure. As ligações ExpressRoute não encaminham dados através da internet pública. As conexões oferecem mais confiabilidade, velocidades mais rápidas, latências mais baixas e maior segurança do que as conexões típicas pela internet pública.
- O utilitário AzCopy move dados para o Armazenamento do Azure através da Internet pública. Isso funciona se os tamanhos dos dados forem inferiores a 10 TB. Para executar cargas regularmente com o AzCopy, teste a velocidade da rede para ver se é aceitável.
- Azure Data Factory tem um gateway que podes instalar no teu servidor local. Em seguida, você pode criar um pipeline para mover dados do servidor local para o Armazenamento do Azure. Para usar o Data Factory com pool SQL dedicado, veja Load data into Azure Synapse Analytics.
Prepare os dados para carregamento
Pode ser necessário preparar e limpar os dados na sua conta de armazenamento antes de os carregar num pool SQL dedicado. A preparação dos dados pode ser feita enquanto os seus dados estão na fonte, enquanto exporta os dados para ficheiros de texto, ou depois de os dados estarem no armazenamento do Azure. É mais fácil trabalhar com os dados o mais cedo possível no processo.
Definir tabelas externas
Antes de poder carregar dados, precisa de definir tabelas externas no seu data warehouse. O PolyBase usa tabelas externas para definir e acessar os dados no Armazenamento do Azure. Uma tabela externa é semelhante a uma exibição de banco de dados. A tabela externa contém o esquema da tabela e aponta para dados armazenados fora do data warehouse.
A definição de tabelas externas envolve a especificação da fonte de dados, do formato dos arquivos de texto e das definições de tabela. Segue-se os tópicos da sintaxe T-SQL de que precisas:
Formatar arquivos de texto
Depois de definidos os objetos externos, é necessário alinhar as linhas dos ficheiros de texto com a tabela externa e a definição do formato de ficheiro. Os dados em cada linha do arquivo de texto devem estar alinhados com a definição da tabela. Para formatar os ficheiros de texto:
- Se os seus dados vierem de uma fonte não relacional, precisa de os transformar em linhas e colunas. Quer os dados sejam de uma fonte relacional ou não relacional, os dados devem ser transformados para se alinharem com as definições de coluna da tabela na qual você planeja carregar os dados.
- Formate os dados no ficheiro de texto para alinharem com as colunas e tipos de dados na tabela de destino do pool SQL. O desalinhamento entre tipos de dados nos ficheiros de texto externos e na tabela do data warehouse faz com que as linhas sejam rejeitadas durante o carregamento.
- Separe campos no arquivo de texto com um terminador. Certifica-te de usar um caractere ou uma sequência de caracteres que não apareça nos teus dados de origem. Use o terminador que especificou com CREATE EXTERNAL FILE FORMAT.
Carregue os dados em tabelas de estágio dedicadas do pool SQL usando PolyBase
É uma boa prática carregar dados numa tabela de preparação. As tabelas de preparação permitem lidar com erros sem interferir nas tabelas de produção. Uma tabela de staging também lhe dá a oportunidade de usar capacidades integradas de processamento de consultas distribuídas em pool SQL para transformações de dados antes de inserir os dados nas tabelas de produção.
Opções para carregamento com PolyBase
Para carregar dados com o PolyBase, pode usar qualquer uma destas opções de carregamento:
- Carregar dados externos usando Microsoft Entra ID.
- Carregue dados externos usando uma identidade gerida.
- PolyBase com T-SQL funciona bem quando os seus dados estão em armazenamento Azure Blob ou Azure Data Lake Storage. Dá-te o maior controlo sobre o processo de carregamento, mas também exige que definas objetos de dados externos. Os outros métodos definem estes objetos nos bastidores ao mapear tabelas de origem para tabelas de destino. Para orquestrar cargas T-SQL, pode usar Azure Data Factory, SSIS ou Funções do Azure.
- PolyBase com SQL Server Integration Services (SSIS) funciona bem quando os teus dados de origem estão em SQL Server. O SSIS define os mapeamentos da tabela de origem para destino e também orquestra a carga. Se você já tiver pacotes SSIS, poderá modificá-los para trabalhar com o novo destino do data warehouse.
- PolyBase com Azure Data Factory é outra ferramenta de orquestração. Ele define um pipeline e agenda tarefas.
- PolyBase com Azure Databricks transfere dados de uma tabela Azure Synapse Analytics para um dataframe Databricks e/ou escreve dados de um dataframe Databricks para uma tabela Azure Synapse Analytics usando PolyBase.
Opções de carregamento que não sejam PolyBase
Se os teus dados não forem compatíveis com o PolyBase, podes usar o bcp ou a API SQLBulkCopy. O BCP carrega diretamente para um pool SQL dedicado sem passar pelo armazenamento Azure Blob, e destina-se apenas a cargas pequenas. Note-se que o desempenho de carregamento destas opções é mais lento do que o do PolyBase.
Transformar os dados
Enquanto os dados estiverem na tabela de preparo, execute as transformações exigidas pela sua carga de trabalho. Em seguida, mova os dados para uma tabela de produção.
Inserir os dados em tabelas de produção
A INSERT INTO ... SELECT instrução move os dados da tabela de staging para a tabela permanente.
Ao projetar um processo ETL, tente executar o processo em uma pequena amostra de teste. Tente extrair 1.000 linhas da tabela para um arquivo, mova-o para o Azure e tente carregá-lo em uma tabela de preparo.
Soluções de integração de parceiros
Muitos dos nossos parceiros têm soluções de carregamento. Para saber mais, consulte uma lista dos nossos parceiros de soluções.