Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Usando a função de tabela azureBlobStorage do ClickHouse

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".

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

Obtendo chaves de acesso do Azure Blob Storage

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.

    Configurações do armazenamento de dados do Azure
  3. Escolha key1 ou key2 e clique no botão Mostrar ao lado do campo String de conexão.

    Chaves de acesso do armazenamento de dados do Azure
  4. Copie a string de conexão — você a usará como parâmetro na função de tabela azureBlobStorage.

Consultando os dados no Azure Blob Storage

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:

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:

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.

Um exemplo simples usando o conjunto de dados Environmental Sensors

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

  1. Baixe um arquivo de exemplo do conjunto de dados Environmental Sensors

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

  1. 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.

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

  3. 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:

    SELECT *
    FROM azureBlobStorage(
        '<YOUR CONNECTION STRING>', 
        'sensors',
        '2019-06_bmp180.csv.zst', 
        'CSVWithNames')
    LIMIT 10
    SETTINGS format_csv_delimiter = ';'
  1. Para carregar os dados em uma tabela, crie uma versão simplificada do esquema usado no dataset original:
    CREATE TABLE sensors
    (
        sensor_id UInt16,
        lat Float32,
        lon Float32,
        timestamp DateTime,
        temperature Float32
    )
    ENGINE = MergeTree
    ORDER BY (timestamp, sensor_id);
  1. Agora, insira os dados do Azure Blob Storage na tabela sensors:
    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.

Recursos adicionais

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:

Navigation