Partilhar via


Tutorial: Carregar dados externos usando o Microsoft Entra ID

Este artigo explica como criar tabelas externas usando a passagem de ID do Microsoft Entra.

Pré-requisitos

Os seguintes recursos são necessários para concluir este tutorial:

  • Um espaço de trabalho do Azure Synapse Analytics e um pool SQL dedicado

Dê à conta Microsoft Entra ID acesso à conta de armazenamento

Este exemplo usa uma conta (ou grupo) do Microsoft Entra ID para autenticar os dados de origem.

Para habilitar o acesso aos dados nas contas Gen2 do Azure Data Lake Storage (ADLS), você precisa conceder à sua conta (ou grupo) do Microsoft Entra ID acesso à conta de origem. Para conceder as permissões adequadas, siga estas etapas:

  1. No portal do Azure, localize sua conta de armazenamento.
  2. Selecione Armazenamento de dados ->Contêineres e navegue até a pasta onde estão os dados de origem aos quais a tabela externa precisa acessar.
  3. Selecione Controlo de acesso (IAM) .
  4. Selecione Adicionar -> Adicionar atribuição de função.
  5. Na lista de funções de função, selecione Leitor de Dados de Blob de Armazenamento e selecione Avançar.
  6. Na página Adicionar atribuição de função, selecione + Selecionar membros. O painel Selecionar membros é aberto no canto direito.
  7. Digite o nome da conta desejada do Microsoft Entra ID. Quando exibido, escolha a conta desejada e escolha Selecionar.
  8. Na página Adicionar atribuição de função, verifique se a lista de Membros inclui sua conta desejada do Microsoft Entra ID. Depois de verificado, selecione Rever + atribuir.
  9. Na página de confirmação, reveja as alterações e selecione Rever + atribuir.

A conta ou grupo de ID do Microsoft Entra agora é membro da função Leitor de Dados de Blob de Armazenamento e tem acesso à pasta de origem.

Ingerir dados usando COPY INTO

A COPY INTO instrução T-SQL fornece ingestão de dados flexível e de alta taxa de transferência em suas tabelas e é a principal estratégia para ingerir dados em suas tabelas de pool SQL dedicadas. Ele permite que os usuários ingeram dados de locais externos sem ter que criar qualquer um dos objetos de banco de dados extra que são necessários para tabelas externas.

A COPY INTO instrução usa o CREDENTIAL argumento para especificar o método de autenticação usado para se conectar à conta de origem. No entanto, ao autenticar usando o Microsoft Entra ID ou em uma conta de armazenamento público, CREDENTIAL não precisa ser especificado. Para executar a COPY INTO instrução usando uma identidade gerenciada de espaço de trabalho para autenticação, use o seguinte comando T-SQL:

COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
    [<CopyIntoOptions>]
);

Em que:

  • <TableName> é o nome da tabela na qual os dados serão ingeridos.
  • <AccountName> é o nome da sua conta ADLS Gen2.
  • <Container> é o nome do contêiner em sua conta de armazenamento onde os dados de origem são armazenados
  • <Folder> é a pasta (ou caminho com subpastas) onde os dados de origem são armazenados dentro do contêiner. Você também pode fornecer um nome de arquivo se apontar diretamente para um único arquivo.
  • <CopyIntoOptions> é a lista de quaisquer outras opções que deseje fornecer à COPY INTO declaração.

Para saber mais e explorar a sintaxe completa, consulte COPY INTO (Transact-SQL).

Criar os objetos de banco de dados necessários

As tabelas externas exigem que os seguintes objetos sejam criados:

  1. Uma fonte de dados externa que aponta para a pasta de origem
  2. Um formato de arquivo externo que define o formato dos arquivos de origem
  3. Uma definição de tabela externa que é usada para consultas

Para seguir estas etapas, você precisa usar o editor SQL no Azure Synapse Workspace ou seu cliente SQL preferido conectado ao seu pool SQL dedicado. Vejamos essas etapas em detalhes.

Criar a fonte de dados externa

A próxima etapa é criar uma fonte de dados externa que especifique onde residem os dados de origem usados pela tabela externa.

Para criar a fonte de dados externa, use o seguinte comando T-SQL:

CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
    TYPE = HADOOP,
    LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/
);

Em que:

  • <ExternalDataSourceName> é o nome que você deseja usar para sua fonte de dados externa.
  • <AccountName> é o nome da sua conta ADLS Gen2.
  • <Container> é o nome do contêiner em sua conta de armazenamento onde os dados de origem são armazenados.
  • <Folder> é a pasta (ou caminho com subpastas) onde os dados de origem são armazenados dentro do contêiner.

Para saber mais sobre fontes de dados externas, consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL).

Criar o formato de arquivo externo

O próximo passo é criar o formato de arquivo externo. Ele especifica o layout real dos dados referenciados pela tabela externa.

Para criar o formato de arquivo externo, use o seguinte comando T-SQL. Substitua <FileFormatName> pelo nome que você deseja usar para seu formato de arquivo externo.

CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        USE_TYPE_DEFAULT = True
    )
);

Neste exemplo, ajuste parâmetros como FIELD_TERMINATOR, STRING_DELIMITER, FIRST_ROWe outros, conforme necessário, de acordo com seus dados de origem. Para obter mais opções de formatação e saber mais, consulte CREATE EXTERNAL FILE FORMAT (Transact-SQL).

Criar a tabela externa

Agora que os objetos necessários que contêm os metadados para acessar dados externos com segurança foram criados, é hora de criar a tabela externa. Para criar a tabela externa, use o seguinte comando T-SQL:

-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
    Col1 INT,
    Col2 NVARCHAR(100),
    Col4 INT
)
WITH
(
    LOCATION = '<Path>',
    DATA_SOURCE = <ExternalDataSourceName>,
    FILE_FORMAT = <FileFormatName>
);

Em que:

  • <ExternalTableName> é o nome que você deseja usar para sua tabela externa.
  • <Path> é o caminho dos dados de origem, relativo ao local especificado na fonte de dados externa.
  • <ExternalDataSourceName> é o nome da fonte de dados externa que você criou.
  • <FileFormatName> é o nome do formato de arquivo externo que você criou.

Certifique-se de ajustar o nome da tabela e o esquema para o nome desejado e o esquema dos dados em seus arquivos de origem.

Neste ponto, todos os metadados necessários para acessar a tabela externa são criados. Para testar sua tabela externa, use uma consulta como o seguinte exemplo de T-SQL para validar seu trabalho:

SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;

Se tudo estiver configurado corretamente, você deverá ver os dados dos dados de origem como resultado dessa consulta.

Para obter mais informações sobre CREATE EXTERNAL TABLEo , consulte CREATE EXTERNAL TABLE (Transact-SQL).