Hello World em Python

Este exemplo é um aplicativo "hello world", escrito em Python, que ilustra como:

  • Configure a autenticação.
  • Conecte a uma instância do Bigtable.
  • criar uma nova tabela;
  • Gravação de dados na tabela
  • Leitura dos dados
  • Exclusão da tabela

A biblioteca de cliente do Python para Bigtable oferece duas APIs, asyncio e uma API síncrona. Se o aplicativo for assíncrono, use asyncio.

Configurar a autenticação

Para usar os exemplos do Python nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.

  1. Instale a CLI do Google Cloud.

  2. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  3. Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:

    gcloud auth application-default login

    Não é necessário fazer isso se você estiver usando o Cloud Shell.

    Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

Executar a amostra

Este exemplo usa o pacote do Bigtable das bibliotecas de cliente do Cloud para Python na comunicação com o Bigtable. O pacote do Bigtable é a melhor opção para novos aplicativos. Se você precisar mover uma carga de trabalho atual do HBase para o Bigtable, veja o exemplo "Hello World" que usa o pacote do HappyBase.

Para executar este programa de amostra, siga as instruções do exemplo no GitHub.

Usar as bibliotecas de cliente do Cloud com o Bigtable

O aplicativo de amostra se conecta ao Bigtable e demonstra algumas operações.

Instalar e importar a biblioteca de cliente

Use o PIP para instalar os pacotes em Python, necessários em um ambiente virtualenv. A amostra inclui um arquivo de requisitos que define os pacotes necessários.

google-cloud-bigtable==2.35.0
google-cloud-core==2.5.0

Importe os módulos.

Asyncio

Para saber como instalar e usar a biblioteca de cliente do Bigtable, consulte Bibliotecas de cliente do Bigtable.

Para autenticar no Bigtable, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

from google.cloud import bigtable
from google.cloud.bigtable.data import row_filters

Sincronizar

Para saber como instalar e usar a biblioteca de cliente do Bigtable, consulte Bibliotecas de cliente do Bigtable.

Para autenticar no Bigtable, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

from datetime import datetime, timezone

from google.cloud import bigtable
from google.cloud.bigtable import column_family
from google.cloud.bigtable import row_filters

Conectar ao Bigtable

Conecte-se ao Bigtable usando um bigtable.Client.

Asyncio

Para saber como instalar e usar a biblioteca de cliente do Bigtable, consulte Bibliotecas de cliente do Bigtable.

Para autenticar no Bigtable, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

client = bigtable.data.BigtableDataClientAsync(project=project_id)
table = client.get_table(instance_id, table_id)

Sincronizar

Para saber como instalar e usar a biblioteca de cliente do Bigtable, consulte Bibliotecas de cliente do Bigtable.

Para autenticar no Bigtable, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

# The client must be created with admin=True because it will create a
# table.
client = bigtable.Client(project=project_id, admin=True)
instance = client.instance(instance_id)

Criar uma tabela

Instancie um objeto de tabela usando Instance.table(). Crie um grupo de colunas e defina a política de coleta de lixo dele. Em seguida, passe o grupo de colunas para Table.create() a fim de criar a tabela.

print("Creating the {} table.".format(table_id))
table = instance.table(table_id)

print("Creating column family cf1 with Max Version GC rule...")
# Create a column family with GC policy : most recent N versions
# Define the GC policy to retain only the most recent 2 versions
max_versions_rule = bigtable.column_family.MaxVersionsGCRule(2)
column_family_id = b"cf1"
column_families = {column_family_id: max_versions_rule}
if not table