Ferramentas de análise programática

Neste documento, descrevemos várias maneiras de escrever e executar códigos para analisar dados gerenciados no BigQuery.

Embora o SQL seja uma linguagem de consulta poderosa, linguagens de programação como Python, Java ou R fornecem sintaxes e uma grande matriz de funções estatísticas incorporadas que os analistas de dados podem achar mais expressivas e fáceis de manipular para certos tipos de análise de dados.

Da mesma forma, embora as planilhas sejam amplamente usadas, outros ambientes de programação, como notebooks, às vezes podem fornecer um ambiente mais flexível para a análise e exploração de dados complexos.

Notebooks do Jupyter

O Jupyter (em inglês) é um aplicativo de código aberto baseado na Web para publicar notebooks que contêm código ativo, descrições textuais e visualizações. Essa plataforma é comumente usada por cientistas de dados, especialistas em machine learning e estudantes de limpeza e transformação de dados, simulação numérica, modelagem estatística, visualização de dados, machine learning e muito mais.

Os notebooks do Jupyter são criados sobre o kernel IPython (em inglês), um poderoso shell interativo, que interage diretamente com o BigQuery usando o IPython Magics para BigQuery (em inglês). Como alternativa, também é possível acessar o BigQuery a partir de suas instâncias de notebooks do Jupyter instalando qualquer uma das bibliotecas de clientes disponíveis do BigQuery. Visualize os dados do BigQuery GIS com os notebooks do Jupyter por meio da extensão GeoJSON (link em inglês). Para mais detalhes sobre a integração do BigQuery, consulte o tutorial Como visualizar dados do BigQuery em um notebook do Jupyter.

Gráfico do notebook do Jupyter mostrando uma visualização dos dados do BigQuery GIS.

O JupyterLab (em inglês) é uma interface do usuário baseada na Web para gerenciar documentos e atividades, como notebooks do Jupyter, editores de texto, terminais e componentes personalizados. O JupyterLab possibilita organizar vários documentos e atividades lado a lado na área de trabalho usando guias e divisores.

JupyterLab: como usar guias e divisores para organizar vários documentos e atividades lado a lado na área de trabalho.

É possível implantar notebooks do Jupyter e ambientes do JupyterLab no Google Cloud usando um dos seguintes produtos:

Apache Zeppelin

O Apache Zeppelin (em inglês) é um projeto de código aberto que oferece notebooks baseados na Web para análise de dados. Implante uma instância do Apache Zeppelin no Dataproc instalando o componente opcional Zeppelin. Por padrão, os notebooks são salvos no Cloud Storage no bucket de preparação do Dataproc, que é especificado pelo usuário ou criado automaticamente na criação do cluster. É possível alterar o local do notebook adicionando a propriedade zeppelin:zeppelin.notebook.gcs.dir ao criar o cluster. Para mais informações sobre como instalar e configurar o Apache Zeppelin, consulte o guia do componente Zeppelin. Para um exemplo, consulte Como analisar conjuntos de dados do BigQuery usando o BigQuery Interpreter para Apache Zeppelin.

Análise SQL dos dados da tabela, mostrados no Zeppelin.

Apache Hadoop, Apache Spark e Apache Hive

Para parte da migração do pipeline de análise de dados, migre alguns jobs legados do Apache Hadoop, do Apache Spark ou do Apache Hive que precisam processar dados diretamente do data warehouse. Por exemplo, é possível extrair recursos para suas cargas de trabalho de machine learning.

O Dataproc permite implantar clusters totalmente gerenciados do Hadoop e do Spark de maneira eficiente e econômica. O Dataproc se integra aos conectores do BigQuery de código aberto. Esses conectores usam a API BigQuery Storage, que transmite dados em paralelo diretamente do BigQuery por meio do gRPC.

Ao migrar suas cargas de trabalho atuais do Hadoop e do Spark para o Dataproc, verifique se as dependências delas estão cobertas pelas versões do Dataproc com suporte. Caso precise instalar um software personalizado, é possível criar sua própria imagem do Dataproc, escrever suas próprias ações de inicialização ou especificar requisitos personalizados de pacotes do Python.

Para dar os primeiros passos, consulte os guias de início rápido do Dataproc e as exemplos de código do conector do BigQuery.

Apache Beam

O Apache Beam (em inglês) é um framework de código aberto que fornece um conjunto avançado de primitivos de gestão janelas e de análise de sessão, além de um ecossistema de conectores de origem e de coletor, incluindo um conector para o BigQuery (em inglês). O Apache Beam permite transformar e enriquecer dados nos modos de fluxo (tempo real) e lote (histórico) com confiabilidade e expressividade iguais.

O Dataflow é um serviço totalmente gerenciado para executar jobs do Apache Beam em escala. A abordagem sem servidor do Dataflow remove a sobrecarga operacional com desempenho, dimensionamento, disponibilidade, segurança e conformidade processados automaticamente, para que você possa se concentrar na programação em vez de gerenciar os clusters de servidores.

Gráfico de execução com uma transformação composta expandida (MakeMapView). A subtransformação que cria a entrada secundária (CreateDataflowView) é selecionada e as métricas de entrada secundária podem ser visualizadas na guia "Etapa".

É possível enviar jobs do Dataflow de maneiras diferentes, por meio da interface da linha de comando, do SDK do Java (em inglês) ou do SDK do Python (em inglês).

Caso queira migrar as consultas e os pipelines de dados de outros frameworks para o Apache Beam e o Dataflow, leia sobre o modelo de programação do Apache Beam e acesse a documentação oficial do Dataflow.

RStudio

Os cientistas de dados geralmente usam a linguagem de programação R (em inglês) para criar ferramentas de análise de dados e aplicativos estatísticos. O RStudio (em inglês) desenvolve ferramentas gratuitas e abertas para a linguagem R e para produtos profissionais corporativos, para que as equipes escalonem e compartilhem o trabalho. Os produtos da RStudio, como o RStudio Server Pro (em inglês), simplificam a análise de dados com o R e fornecem ferramentas eficazes para publicação e compartilhamento.

O RStudio Server Pro é um ambiente de desenvolvimento integrado (IDE, na sigla em inglês) sob demanda e licenciado comercialmente. Ele oferece os recursos encontrados no conhecido ambiente de desenvolvimento integrado de código aberto RStudio, além de conveniência pronta para uso, segurança aprimorada, capacidade de gerenciar várias versões e sessões em R e muito mais.

É possível implantar o componente RStudio Server Pro para Google Cloud a partir do Cloud Marketplace. Esta versão é idêntica ao RStudio Server Pro, mas com mais conveniência para os cientistas de dados, incluindo a pré-instalação de várias versões do R e as bibliotecas de sistemas comuns. Também inclui o bigrquery, o pacote BigQuery para R, que fornece back-ends de DBI e dplyr. Eles permitem interagir com o BigQuery usando SQL de baixo nível ou verbos dplyr de alto nível. Esse pacote simplifica o trabalho com dados armazenados no BigQuery ao permitir que você consulte tabelas do BigQuery e recupere metadados sobre projetos, conjuntos de dados, tabelas e jobs. Para saber mais, consulte o guia oficial sobre Primeiros passos com o RStudio Server Pro para Google Cloud e as Perguntas frequentes do RStudio Server Pro para Google Cloud (links em inglês).

Também é possível instalar a versão de código aberto do RStudio Server em um cluster do Dataproc. Ao executar o RStudio no Dataproc, você aproveita o escalonamento automático do Dataproc. O escalonamento automático permite ter um tamanho mínimo de cluster enquanto desenvolve sua lógica do SparkR. Depois de enviar seu job para processamento em larga escala, você não precisa fazer nada diferente ou se preocupar em modificar seu servidor. Depois que você enviar o job do SparkR ao RStudio, o cluster do Dataproc será escalonado para atender às necessidades do job nos intervalos definidos. Para mais detalhes sobre a integração do RStudio ao Dataproc, consulte o anúncio oficial (em inglês).

Outros recursos

O BigQuery oferece uma grande variedade de bibliotecas de cliente em várias linguagens de programação, como Java, Go, Python, JavaScript, PHP e Ruby. Alguns frameworks de análise de dados, como o Pandas, fornecem plug-ins que interagem diretamente com o BigQuery. Para conferir alguns exemplos práticos, consulte o tutorial Visualizar dados do BigQuery em um notebook do Jupyter.

Por fim, se você preferir gravar programas em um ambiente shell, é possível usar a ferramenta de linha de comando bq.