- um ambiente virtual
- um serviço ClickHouse Cloud em funcionamento e seus detalhes de conexão
- Conectar-se ao ClickHouse Cloud a partir de Jupyter notebooks usando chDB
- Consultar conjuntos de dados remotos e converter os resultados em DataFrames do Pandas
- Combinar dados da nuvem com arquivos CSV locais para análise
- Visualizar dados usando matplotlib
Configuração
Data sources. Em seguida, clique em Predefined sample data:
Selecione Get started no cartão de dados de preços pagos de imóveis do Reino Unido (4GB):
Em seguida, clique em Import dataset:
O ClickHouse criará automaticamente a tabela pp_complete no banco de dados default e preencherá a tabela com 28,92 milhões de linhas de dados de preços.
Para reduzir a probabilidade de expor suas credenciais, recomendamos adicionar seu nome de usuário e senha do Cloud como variáveis de ambiente na sua máquina local.
Em um terminal, execute o seguinte comando para adicionar seu nome de usuário e senha como variáveis de ambiente:
As variáveis de ambiente acima permanecem definidas apenas durante a sessão do terminal.
Para defini-las permanentemente, adicione-as ao arquivo de configuração do shell.
localhost:8888.
Clique em File > New > Notebook para criar um novo notebook.
Você será solicitado a selecionar um kernel.
Selecione qualquer kernel Python disponível; neste exemplo, vamos selecionar o ipykernel:
Em uma célula em branco, você pode digitar o seguinte comando para instalar o chDB, que usaremos para nos conectar à nossa instância remota do ClickHouse Cloud:
Explorando os dados
remoteSecure do ClickHouse permite recuperar facilmente os dados do ClickHouse Cloud.
Você pode instruir o chDB a retornar esses dados em processamento como um DataFrame do Pandas — uma forma prática e familiar de trabalhar com dados.
Escreva a seguinte consulta para buscar os dados de preços pagos no Reino Unido no seu serviço ClickHouse Cloud e transformá-los em um pandas.DataFrame:
chdb.query(query, "DataFrame") executa a consulta especificada e exibe o resultado no terminal como um DataFrame do Pandas.
Nesta consulta, usamos a função remoteSecure para nos conectar ao ClickHouse Cloud.
A função remoteSecure recebe os seguintes parâmetros:
- uma string de conexão
- o nome do banco de dados e da tabela a serem usados
- seu nome de usuário
- sua senha
remoteSecure se conecta ao serviço remoto do ClickHouse Cloud, executa a consulta e retorna o resultado.
Dependendo do volume de dados, isso pode levar alguns segundos.
Neste caso, retornamos o preço médio por ano e aplicamos o filtro town='LONDON'.
O resultado é então armazenado como um DataFrame em uma variável chamada df.
df.head exibe apenas as primeiras linhas dos dados retornados:
Execute o comando a seguir em uma nova célula para verificar os tipos das colunas:
date seja do tipo Date no ClickHouse, no DataFrame resultante ele é do tipo uint16.
O chDB infere automaticamente o tipo mais adequado ao retornar o DataFrame.
Com os dados agora disponíveis em um formato familiar, vamos explorar como os preços dos imóveis em Londres mudaram ao longo do tempo.
Em uma nova célula, execute o comando a seguir para criar um gráfico simples de tempo x preço para Londres usando matplotlib:
file para ler arquivos diretamente da sua máquina local.
Em uma nova célula, execute o comando a seguir para criar um novo DataFrame a partir do arquivo .csv local.
Ler de várias fontes em uma única etapa
Ler de várias fontes em uma única etapa
Também é possível ler de várias fontes em uma única etapa. Para isso, você pode usar a consulta abaixo com um
JOIN:Resumo
remoteSecure(), ler arquivos CSV locais com o motor de tabela file() e converter os resultados diretamente em DataFrames do Pandas para análise e visualização.
Com o chDB, cientistas de dados podem aproveitar os poderosos recursos de SQL do ClickHouse junto com ferramentas Python familiares, como Pandas e matplotlib, facilitando a combinação de múltiplas fontes de dados para uma análise abrangente.
Embora muitos cientistas de dados londrinos talvez não consigam comprar sua própria casa ou apartamento tão cedo, pelo menos podem analisar o mercado que os deixou de fora!