Todos os produtos
Search
Central de documentação

Tablestore:Criar uma tabela de dados

Última atualização: Jul 03, 2026

Crie uma tabela de dados do Tablestore com o Tablestore SDK for Python. Configure o esquema da tabela, as opções, os índices secundários e a criptografia conforme necessário.

Observações de uso

Após criar uma tabela de dados, aguarde a conclusão do carregamento antes de executar qualquer operação. Esse processo geralmente leva alguns segundos. Operações realizadas antes que a tabela esteja pronta falharão.

Pré-requisitos

Antes de começar, verifique se você:

Método

def create_table(self, table_meta, table_options, reserved_throughput, secondary_indexes=[], sse_spec)

Parâmetros

  • table_meta (obrigatório) TableMeta: esquema da tabela. Inclui os seguintes parâmetros:

    Nome

    Tipo

    Descrição

    table_name (obrigatório)

    str

    Nome da tabela de dados.

    schema_of_primary_key (obrigatório)

    List[Tuple]

    Configuração da chave primária.

    • Defina de 1 a 4 colunas de chave primária, classificadas em ordem crescente por padrão. A primeira coluna atua como chave de partição.

    • As colunas de chave primária aceitam os tipos STRING, INTEGER e BINARY. Defina uma chave primária com incremento automático em qualquer coluna do tipo INTEGER que não seja chave de partição.

    defined_columns (opcional)

    List[Tuple]

    Configuração das colunas predefinidas.

    • Colunas predefinidas são colunas de atributo definidas na criação da tabela. Elas podem servir como colunas de índice para índices secundários e índices de pesquisa.

    • As colunas predefinidas aceitam os tipos STRING, INTEGER, BINARY, DOUBLE e BOOLEAN.

  • table_options (obrigatório) TableOptions: configuração da tabela. Inclui os seguintes parâmetros:

    Nome

    Tipo

    Descrição

    time_to_live (opcional)

    int

    Tempo de vida (TTL) dos dados, em segundos. Padrão: -1.

    • Defina como -1 para manter os dados indefinidamente. Caso contrário, o valor mínimo é 86400 (um dia). O sistema exclui automaticamente dados mais antigos que o TTL.

    • Para usar índices de pesquisa ou secundários, defina este parâmetro como -1 ou configure allow_update como False.

    max_version (opcional)

    int

    Número máximo de versões retidas por coluna de atributo. Padrão: 1.

    • Para usar índices de pesquisa ou secundários, defina este parâmetro como 1.

    max_time_deviation (opcional)

    int

    Desvio máximo de versão, em segundos. Padrão: 86400 (um dia).

    • O timestamp dos dados gravados deve estar dentro deste desvio em relação à hora atual do sistema. Gravações fora desse intervalo falharão.

    • O intervalo de versões válido para dados de colunas de atributo é [max(Hora da gravação - Desvio máximo de versão, Hora da gravação - TTL), Hora da gravação + Desvio máximo de versão).

    allow_update (opcional)

    bool

    Indica se as atualizações de linha são permitidas. Padrão: True.

    • Defina como False para desativar atualizações pelo método update_row().

  • secondary_indexes (opcional) List[SecondaryIndexMeta]: lista de índices secundários. Cada índice inclui os seguintes parâmetros:

    Nome

    Tipo

    Descrição

    index_name (obrigatório)

    str

    Nome do índice.

    primary_key_names (obrigatório)

    List[str]

    Colunas de chave primária do índice.

    • Podem incluir as colunas de chave primária da tabela de dados e as colunas predefinidas.

    • Em um índice secundário local, a primeira coluna de chave primária do índice deve corresponder à primeira coluna de chave primária da tabela de dados.

    defined_column_names (opcional)

    List[str]

    Colunas predefinidas incluídas no índice. Devem ser colunas já definidas na tabela de dados.

    index_type (opcional)

    SecondaryIndexType

    Tipo do índice. Valores válidos:

    • GLOBAL_INDEX (padrão): índice secundário global.

    • LOCAL_INDEX: índice secundário local.

  • reserved_throughput (obrigatório) ReservedThroughput: throughput reservado, em unidades de capacidade (CU). Padrão: 0. Um valor diferente de zero só tem efeito para tabelas de dados em instâncias de alto desempenho executadas no modo CU.

  • sse_spec (opcional) SSESpecification: configurações de criptografia de dados. Inclui os seguintes parâmetros:

    Importante

    Configure a criptografia de dados apenas ao criar a tabela. Não é possível desativar a criptografia após a criação da tabela. Este recurso requer a versão 6.4.0 ou posterior do Python SDK.

    Nome

    Tipo

    Descrição

    ative (obrigatório)

    boolean

    Indica se a criptografia de dados deve ser ativada. Padrão: False.

    key_type (opcional)

    SSEKeyType

    Tipo de criptografia. Valores válidos de SSEKeyType:

    • SSE_KMS_SERVICE: criptografia KMS.

    • SSE_BYOK: criptografia BYOK.

    key_id (opcional)

    str

    ID da chave mestra do cliente (CMK). Obrigatório apenas quando key_type é SSE_BYOK.

    role_arn (opcional)

    str

    ARN da função do RAM. Obrigatório apenas quando key_type é SSE_BYOK.

Exemplos

O exemplo a seguir cria uma tabela de dados chamada test_table com uma única coluna de chave primária do tipo STRING.

# A data table requires at least one primary key column.
schema_of_primary_key = [('id', 'STRING')]
# Define the table schema.
table_meta = TableMeta('test_table', schema_of_primary_key)

# Configure table options.
table_options = TableOptions(time_to_live=-1, max_version=1, max_time_deviation=86400, allow_update=True)

# Set the reserved throughput. Default is 0 CU.
# A non-zero value only takes effect for high-performance instances in CU mode.
reserved_throughput = ReservedThroughput(CapacityUnit(0,0))

try:
    client.create_table(table_meta, table_options, reserved_throughput)
    print("Create table succeeded.")
except Exception as e:
    print("Create table failed. %s" % e)

Os exemplos a seguir mostram como definir configurações específicas ao criar uma tabela de dados.

  • Adicionar colunas predefinidas

    defined_columns = [('name', 'STRING')]
    # Include predefined columns in the table schema.
    table_meta = TableMeta('test_table', schema_of_primary_key, defined_columns)
  • Adicionar índices secundários

    # Define the secondary index list.
    secondary_indexes = [
        # Specify the index name, primary key columns, predefined columns, and index type.
        SecondaryIndexMeta('test_table_index', ['id', 'name'], [], index_type= SecondaryIndexType.LOCAL_INDEX)
    ]
    client.create_table(table_meta, table_options, reserved_throughput, secondary_indexes)
  • Configurar criptografia de dados

    Use a classe SSESpecification para configurar a criptografia no lado do servidor (SSE) da tabela de dados.

    • Criptografia KMS

      sse_specification = SSESpecification(enable=True, key_type=SSEKeyType.SSE_KMS_SERVICE, key_id=None,
                                                   role_arn=None)
      client.create_table(table_meta, table_option, reserved_throughput, sse_spec=sse_specification)
    • Criptografia BYOK

      Nota

      Antes de executar este código, obtenha o ID da CMK e o ARN da função do RAM. Para obter mais informações, consulte Criptografia BYOK.

      key_id = "key-hzz6*****************"
      role_arn = "acs:ram::1705************:role/tabletorebyok"
      sse_specification = SSESpecification(enable=True, key_type=SSEKeyType.SSE_BYOK, key_id=key_id,
                                                   role_arn=role_arn)
      client.create_table(table_meta, table_option, reserved_throughput, sse_spec=sse_specification)

Referências