Path: blob/master/site/pt-br/io/tutorials/bigtable.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Título
Visão geral
Este notebook apresenta o uso básico e os recursos do módulo tensorflow_io.bigtable
. Você deve conhecer estes temas antes de prosseguir:
Observação: o Jupyter executa linhas com o prefixo !
como comandos do shell e interpola variáveis do Python com o prefixo $
com esses comandos.
Configuração
Observação: ao executar a célula abaixo, será solicitado que você faça login no Google Cloud.
Neste exemplo, o emulador Bigtable é usado. Se você já tiver configurado sua instância do Bigtable e preenchido com valores, pule estas etapas e vá diretamente para a seção Início rápido.
Inicie o emulador em segundo plano.
Crie uma tabela
Preencha a tabela com valores
Início rápido
Primeiro você precisa criar um cliente e uma tabela da qual deseja ler.
Excelente! Agora, você pode criar um dataset do TensorFlow que lerá os dados da tabela.
Para fazer isso, é preciso fornecer o tipo de dados que você deseja ler, listar os nomes das colunas no formato column_family:column_name
e um row_set (conjunto de linhas) que você deseja ler.
Para criar um row_set, use os métodos utilitários fornecidos nos módulos tensorflow.bigtable.row_set
e tensorflow.bigtable.row_range
. Um row_set contendo todas as linhas é criado.
Lembre-se de que o Bigtable lê valores em ordem lexicográfica, não na ordem em que eles são colocados. As linhas receberam chaves de linha aleatórias para poderem ser misturadas.
Pronto! Parabéns!
Leitura paralela
O dataset tem suporte à leitura paralela do Bigtable. Para fazer isso, use o método parallel_read_rows
e especifique num_parallel_calls
(número de chamadas paralelas) como um argumento. Quando esse método é chamado, o trabalho é dividido entre os workers com base em SampleRowKeys.
Observação: lembre-se de que, na leitura em paralelo, as linhas não serão lidas em nenhuma ordem específica.
Lendo row_keys específicas
Para ler dados do Bigtable, você pode especificar um conjunto ou um intervalo de linhas, ou uma combinação dos dois.
O método read_rows
espera que você forneça um RowSet. Você pode criar um RowSet a partir de chaves de linha específicas ou de RowRanges (intervalos de linha) da seguinte forma:
Esse row_set conteria um intervalo de linhas [row000, row300]
e também as linhas row585 e row832.
Você também pode criar um row_set com um intervalo infinito, intervalo vazio ou um prefixo. Além disso, é possível fazer a interseção dele com um row_range.
Especificando uma versão de um valor
O Bigtable permite manter diversos valores em uma célula com timestamps diferentes. Você pode especificar qual versão deseja escolher usando os filtros de versão. Porém, você pode recuperar somente um vetor bidimensional usando o conector tensorflow.bigtable, então o filtro latest
(mais recente) sempre é anexado ao filtro de versão especificado pelo usuário. Isso significa que, se mais de um valor para uma célula passar pelo filtro fornecido, o mais recente será usado.
Você pode usar o filtro latest
passando o valor mais recente ou pode especificar um intervalo de tempo, que pode ser fornecido como objetos DateTime do Python ou como um número representando os segundos ou microssegundos desde a época.