Neste guia, vamos começar a usar a versão para Python do chDB.
Começaremos consultando um arquivo JSON no S3, depois criaremos uma tabela no chDB com base nesse arquivo JSON e faremos algumas consultas nos dados.
Também veremos como fazer com que as consultas retornem dados em diferentes formatos, incluindo Apache Arrow e Pandas, e, por fim, aprenderemos a consultar DataFrames do Pandas.
Primeiro, vamos criar um ambiente virtual:
E agora vamos instalar o chDB.
Certifique-se de ter a versão 2.0.3 ou superior:
Agora vamos instalar ipython:
Vamos usar ipython para executar os comandos no restante deste guia, que você pode iniciar com:
Também usaremos o Pandas e o Apache Arrow neste guia, então vamos instalar essas bibliotecas também:
Consultando um arquivo JSON no S3
Vamos agora ver como consultar um arquivo JSON armazenado em um bucket do S3.
O dataset de dislikes do YouTube contém mais de 4 bilhões de linhas de dislikes em vídeos do YouTube até 2021.
Vamos trabalhar com um dos arquivos JSON desse dataset.
Importe o chdb:
Podemos usar a seguinte consulta para descrever a estrutura de um dos arquivos JSON:
Também podemos contar o número de linhas nesse arquivo:
Este arquivo contém pouco mais de 300.000 registros.
O chdb ainda não oferece suporte ao envio de parâmetros de consulta, mas podemos extrair o caminho e passá-lo por uma f-String.
Não há problema em fazer isso com variáveis definidas no seu programa, mas não faça isso com entradas fornecidas pelo usuário; caso contrário, sua consulta ficará vulnerável à injeção de SQL.
O formato de saída padrão é CSV, mas podemos alterá-lo usando o parâmetro output_format.
O chDB oferece suporte aos formatos de dados do ClickHouse, bem como alguns formatos próprios, incluindo DataFrame, que retorna um DataFrame do Pandas:
Ou, se quisermos obter uma tabela Apache Arrow:
Criando uma tabela a partir de um arquivo JSON
Em seguida, vamos ver como criar uma tabela no chDB.
Precisamos usar uma API diferente para isso, então primeiro vamos importá-la:
Em seguida, vamos inicializar uma sessão.
Se quisermos que a sessão seja persistida em disco, precisamos fornecer um nome de diretório.
Se deixarmos esse campo em branco, o banco de dados ficará na memória e será perdido assim que encerrarmos o processo do Python.
Em seguida, vamos criar um banco de dados:
Agora podemos criar uma tabela dislikes com base no esquema do arquivo JSON, usando a técnica CREATE...EMPTY AS.
Usaremos a configuração schema_inference_make_columns_nullable para que os tipos das colunas não sejam todos definidos como Nullable.
Podemos então usar a cláusula DESCRIBE para inspecionar o esquema:
Em seguida, vamos preencher essa tabela:
Também poderíamos realizar essas duas etapas de uma só vez usando a técnica CREATE...AS.
Vamos criar outra tabela usando essa técnica:
Por fim, vamos consultar a tabela:
Digamos que, em seguida, adicionemos uma coluna extra ao DataFrame para calcular a proporção entre curtidas e não curtidas.
Poderíamos escrever o seguinte código:
Consultando um DataFrame do Pandas
Podemos então consultar esse DataFrame no chDB:
Você também pode ler mais sobre como consultar DataFrames do Pandas no guia do desenvolvedor sobre consulta a DataFrames do Pandas.
Esperamos que este guia tenha oferecido uma boa visão geral do chDB.
Para saber mais sobre como usá-lo, consulte os seguintes guias para desenvolvedores: