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.
-
No portal do Azure, navegue até sua Conta de Armazenamento.
-
No menu à esquerda, selecione Chaves de acesso na seção Segurança + rede.

-
Escolha key1 ou key2 e clique no botão Mostrar ao lado do campo String de conexão.

-
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.
-
Baixe um arquivo de exemplo do conjunto de dados Environmental Sensors
-
No Portal do Azure, crie uma nova conta de armazenamento, caso ainda não tenha uma.
-
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.
-
Faça upload do arquivo
2019-06_bmp180.csv.zstbaixado anteriormente para o contêiner. -
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 = ';'- 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);
- 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: