> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Usando a função de tabela azureBlobStorage do ClickHouse

# Usando a função de tabela azureBlobStorage do ClickHouse

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

Esta é uma das maneiras mais eficientes e diretas de copiar dados do
Azure Blob Storage ou do Azure Data Lake Storage para o ClickHouse. Com essa função de tabela,
você pode instruir o ClickHouse a se conectar diretamente ao armazenamento do Azure e
ler dados sob demanda.

Ela fornece uma interface semelhante a uma tabela que permite selecionar, inserir e
filtrar dados diretamente da origem. A função é altamente otimizada e
oferece suporte a muitos formatos de arquivo amplamente usados, incluindo `CSV`, `JSON`, `Parquet`, `Arrow`,
`TSV`, `ORC`, `Avro` e outros. Para ver a lista completa, consulte ["Formatos de dados"](/docs/pt-BR/reference/formats/index).

Nesta seção, apresentaremos um guia simples de introdução para transferir
dados do Azure Blob Storage para o ClickHouse, juntamente com considerações importantes
para usar essa função com eficiência. Para mais detalhes e opções avançadas,
consulte a documentação oficial:
[página de documentação da função de tabela `azureBlobStorage`](/docs/pt-BR/reference/functions/table-functions/azureBlobStorage)

<div id="acquiring-azure-blob-storage-access-keys">
  ## Obtendo chaves de acesso do Azure Blob Storage
</div>

Para permitir que o ClickHouse acesse seu Azure Blob Storage, você precisará de uma string de conexão com uma chave de acesso.

1. No portal do Azure, navegue até sua **Conta de Armazenamento**.

2. No menu à esquerda, selecione **Chaves de acesso** na seção **Segurança +
   rede**.
   <Image img="https://mintcdn.com/private-7c7dfe99/k4wNHsd_gyvah7Fr/images/integrations/data-ingestion/azure-data-factory/azure-data-store-settings.webp?fit=max&auto=format&n=k4wNHsd_gyvah7Fr&q=85&s=508a9d21ffb595d9c42aceb1b8d41758" size="lg" alt="Configurações do armazenamento de dados do Azure" border width="1910" height="956" data-path="images/integrations/data-ingestion/azure-data-factory/azure-data-store-settings.webp" />

3. Escolha **key1** ou **key2** e clique no botão **Mostrar** ao lado do
   campo **String de conexão**.
   <Image img="https://mintcdn.com/private-7c7dfe99/k4wNHsd_gyvah7Fr/images/integrations/data-ingestion/azure-data-factory/azure-data-store-access-keys.webp?fit=max&auto=format&n=k4wNHsd_gyvah7Fr&q=85&s=4c6be625cdb736a731bd995ceb65ef47" size="lg" alt="Chaves de acesso do armazenamento de dados do Azure" border width="1910" height="956" data-path="images/integrations/data-ingestion/azure-data-factory/azure-data-store-access-keys.webp" />

4. Copie a string de conexão — você a usará como parâmetro na função de tabela azureBlobStorage.

<div id="querying-the-data-from-azure-blob-storage">
  ## Consultando os dados no Azure Blob Storage
</div>

Abra o console de consultas do ClickHouse de sua preferência — pode ser a
interface web do ClickHouse Cloud, o cliente ClickHouse CLI ou qualquer outra
ferramenta que você use para executar consultas. Quando tiver a string de conexão e o console de consultas do ClickHouse
prontos, você já pode começar a consultar os dados diretamente no Azure Blob Storage.

No exemplo a seguir, consultamos todos os dados armazenados em arquivos JSON localizados em
um contêiner chamado data-container:

```sql theme={null}
SELECT * FROM azureBlobStorage(
    '<YOUR CONNECTION STRING>',
    'data-container',
    '*.json',
    'JSONEachRow');
```

Se você quiser copiar esses dados para uma tabela local do ClickHouse (por exemplo, my\_table),
pode usar uma instrução `INSERT INTO ... SELECT`:

```sql theme={null}
INSERT INTO my_table
SELECT * FROM azureBlobStorage(
    '<YOUR CONNECTION STRING>',
    'data-container',
    '*.json',
    'JSONEachRow');
```

Isso permite extrair dados externos para o ClickHouse de forma eficiente, sem
a necessidade de etapas intermediárias de ETL.

<div id="simple-example-using-the-environmental-sensors-dataset">
  ## Um exemplo simples usando o conjunto de dados Environmental Sensors
</div>

Como exemplo, vamos baixar um único arquivo do conjunto de dados Environmental Sensors.

1. Baixe um [arquivo de exemplo](https://clickhouse-public-datasets.s3.eu-central-1.amazonaws.com/sensors/monthly/2019-06_bmp180.csv.zst)
   do [conjunto de dados Environmental Sensors](/docs/pt-BR/get-started/sample-datasets/environmental-sensors)

2. No Portal do Azure, crie uma nova conta de armazenamento, caso ainda não tenha uma.

<Warning>
  Certifique-se de que **Allow storage account key access** esteja habilitado para sua conta de
  armazenamento; caso contrário, você não poderá usar as chaves da conta para acessar os
  dados.
</Warning>

3. Crie um novo contêiner na sua conta de armazenamento. Neste exemplo, damos a ele o nome sensors.
   Você pode pular esta etapa se estiver usando um contêiner existente.

4. Faça upload do arquivo `2019-06_bmp180.csv.zst` baixado anteriormente para o
   contêiner.

5. Siga as etapas descritas anteriormente para obter a string de conexão do Azure Blob Storage.

Agora que tudo está configurado, você pode consultar os dados diretamente do Azure Blob Storage:

```sql theme={null}
    SELECT *
    FROM azureBlobStorage(
        '<YOUR CONNECTION STRING>', 
        'sensors',
        '2019-06_bmp180.csv.zst', 
        'CSVWithNames')
    LIMIT 10
    SETTINGS format_csv_delimiter = ';'
```

7. Para carregar os dados em uma tabela, crie uma versão simplificada do
   esquema usado no dataset original:
   ```sql theme={null}
   CREATE TABLE sensors
   (
       sensor_id UInt16,
       lat Float32,
       lon Float32,
       timestamp DateTime,
       temperature Float32
   )
   ENGINE = MergeTree
   ORDER BY (timestamp, sensor_id);
   ```

<Info>
  Para mais informações sobre opções de configuração e inferência de esquema ao
  consultar fontes externas, como o Azure Blob Storage, consulte [Inferência automática
  de esquema a partir dos dados de entrada](/docs/pt-BR/concepts/features/interfaces/schema-inference)
</Info>

8. Agora, insira os dados do Azure Blob Storage na tabela sensors:
   ```sql theme={null}
   INSERT INTO sensors
   SELECT sensor_id, lat, lon, timestamp, temperature
   FROM azureBlobStorage(
       '<YOUR CONNECTION STRING>', 
       'sensors',
       '2019-06_bmp180.csv.zst', 
       'CSVWithNames')
   SETTINGS format_csv_delimiter = ';'
   ```

A tabela sensors agora está preenchida com os dados do arquivo `2019-06_bmp180.csv.zst`
armazenado no Azure Blob Storage.

<div id="additional-resources">
  ## Recursos adicionais
</div>

Esta é apenas uma introdução básica ao uso da função `azureBlobStorage`. Para
opções mais avançadas e detalhes de configuração, consulte a documentação
oficial:

* [Função de tabela azureBlobStorage](/docs/pt-BR/reference/functions/table-functions/azureBlobStorage)
* [Formatos para dados de entrada e saída](/docs/pt-BR/reference/formats/index)
* [Inferência automática de esquema a partir dos dados de entrada](/docs/pt-BR/concepts/features/interfaces/schema-inference)
