Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
O artigo explica como usar o PolyBase em uma instância do SQL Server para consultar dados externos no Armazenamento de Blobs do Azure.
Observação
O APS atualmente oferece suporte somente ao Armazenamento de Blobs do Azure localmente redundante (LRS) de uso geral v1 padrão.
Primeiro, configure o APS para usar o Armazenamento de Blobs do Azure.
Execute sp_configure com "conectividade do hadoop" definido como um provedor do Armazenamento de Blobs do Azure. Para encontrar o valor dos provedores, consulte Configuração de conectividade do PolyBase.
-- Values map to various external data sources.
-- Example: value 7 stands for Hortonworks HDP 2.1 to 2.6 on Linux,
-- 2.1 to 2.3 on Windows Server, and Azure Blob Storage
sp_configure @configname = 'hadoop connectivity', @configvalue = 7;
GO
RECONFIGURE
GO
Reinicie a Região APS usando a página Status do serviço no Appliance Configuration Manager.
Para consultar os dados na fonte de dados do Armazenamento de Blobs do Azure, defina uma tabela externa para usar nas consultas Transact-SQL. As etapas a seguir descrevem como configurar a tabela externa.
Crie uma chave mestra no banco de dados. Isso é necessário para criptografar o segredo da credencial.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'S0me!nfo';
Crie uma credencial com escopo de banco de dados para o Armazenamento de Blobs do Azure.
-- IDENTITY: any string (this is not used for authentication to Azure storage).
-- SECRET: your Azure storage account key.
CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH IDENTITY = 'user', Secret = '<azure_storage_account_key>';
Crie uma fonte de dados externa, usando CREATE EXTERNAL DATA SOURCE.
-- LOCATION: Azure account storage account name and blob container name.
-- CREDENTIAL: The database scoped credential created above.
CREATE EXTERNAL DATA SOURCE AzureStorage with (
TYPE = HADOOP,
LOCATION ='wasbs://<blob_container_name>@<azure_storage_account_name>.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
Crie um formato de arquivo externo com CREATE EXTERNAL FILE FORMAT.
-- FORMAT TYPE: Type of format in Azure Blob Storage (DELIMITEDTEXT, RCFILE, ORC, PARQUET).
-- In this example, the files are pipe (|) delimited
CREATE EXTERNAL FILE FORMAT TextFileFormat WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR ='|',
USE_TYPE_DEFAULT = TRUE)
Crie uma tabela externa que aponta para dados armazenados no armazenamento do Azure com CREATE EXTERNAL TABLE. Neste exemplo, os dados externos contêm os dados de sensor do carro.
-- LOCATION: path to file or directory that contains the data (relative to HDFS root).
CREATE EXTERNAL TABLE [dbo].[CarSensor_Data] (
[SensorKey] int NOT NULL,
[CustomerKey] int NOT NULL,
[GeographyKey] int NULL,
[Speed] float NOT NULL,
[YearMeasured] int NOT NULL
)
WITH (LOCATION='/Demo/',
DATA_SOURCE = AzureStorage,
FILE_FORMAT = TextFileFormat
);
Crie estatísticas em uma tabela externa.
CREATE STATISTICS StatsForSensors on CarSensor_Data(CustomerKey, Speed)
O PolyBase é adequado para três funções:
As consultas a seguir fornecem exemplo com os dados de sensor de carro fictícios.
A consulta ad hoc a seguir associa os dados relacionais aos dados do Armazenamento de Blobs do Azure. Ela seleciona clientes que dirigem a uma velocidade superior a 56 km/h, integrando os dados estruturados do cliente armazenados no SQL Server aos dados do sensor do carro armazenados no Armazenamento de Blobs do Azure.
SELECT DISTINCT Insured_Customers.FirstName,Insured_Customers.LastName,
Insured_Customers. YearlyIncome, CarSensor_Data.Speed
FROM Insured_Customers, CarSensor_Data
WHERE Insured_Customers.CustomerKey = CarSensor_Data.CustomerKey and CarSensor_Data.Speed > 35
ORDER BY CarSensor_Data.Speed DESC
A consulta a seguir importa dados externos para o APS. Esse exemplo importa dados de motoristas velozes para o APS para fazer uma análise mais detalhada. Para melhorar o desempenho, ela usa a tecnologia Columnstore no APS.
CREATE TABLE Fast_Customers
WITH
(CLUSTERED COLUMNSTORE INDEX, DISTRIBUTION = HASH (CustomerKey))
AS
SELECT DISTINCT
Insured_Customers.CustomerKey, Insured_Customers.FirstName, Insured_Customers.LastName,
Insured_Customers.YearlyIncome, Insured_Customers.MaritalStatus
from Insured_Customers INNER JOIN
(
SELECT * FROM CarSensor_Data where Speed > 35
) AS SensorD
ON Insured_Customers.CustomerKey = SensorD.CustomerKey
A consulta a seguir exporta dados do APS para Armazenamento de Blobs do Azure. Ela pode ser usada para arquivar dados relacionais no Armazenamento de Blobs do Azure e pode continuar a consultá-los.
-- Export data: Move old data to Azure Blob Storage while keeping it query-able via an external table.
CREATE EXTERNAL TABLE [dbo].[FastCustomers2009]
WITH (
LOCATION='/archive/customer/2009',
DATA_SOURCE = AzureStorage,
FILE_FORMAT = TextFileFormat
)
AS
SELECT T.* FROM Insured_Customers T1 JOIN CarSensor_Data T2
ON (T1.CustomerKey = T2.CustomerKey)
WHERE T2.YearMeasured = 2009 and T2.Speed > 40;
No SQL Server Data Tools (SSDT), as tabelas externas são exibidas em uma pasta separada Tabelas Externas. As fontes de dados externas e os formatos de arquivo externos estão em subpastas em Recursos Externos.
Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoTreinamento
Módulo
Introdução à virtualização de dados do SQL Server 2022 - Training
Saiba mais sobre a virtualização de dados, como usar o Polybase para acessar e consultar dados externos e recursos avançados do Polybase no SQL Server 2022.
Certificação
Microsoft Certified: Azure Data Engineer Associate - Certifications
Demonstre a compreensão das tarefas comuns de engenharia de dados para implementar e gerenciar cargas de trabalho de engenharia de dados no Microsoft Azure, usando vários serviços do Azure.
Documentação
Referência do Transact-SQL do PolyBase - SQL Server
Use o PolyBase para consultar seus dados externos no Hadoop, Armazenamento de Blobs do Azure, Azure Data Lake Store, SQL Server, Oracle, Teradata e MongoDB ou em arquivos CSV.
Acessar os dados externos: Armazenamento de Blobs do Azure - PolyBase - SQL Server
O artigo usa o PolyBase em uma instância do SQL Server com o Armazenamento de Blobs do Azure. O PolyBase é adequado para consultas ad hoc de tabelas externas e importação/exportação de dados.
Virtualizar tabela delta com PolyBase - SQL Server
Virtualizar uma tabela delta com o PolyBase a partir do SQL Server 2022.