Todos os produtos
Search
Central de documentação

Tablestore:Inicializar o modelo Timeline

Última atualização: Jul 03, 2026

Para usar o modelo Timeline, inicialize três componentes principais: TimelineStoreFactory, TimelineMetaStore e TimelineStore. Este tópico explica o fluxo de inicialização, descreve cada componente e fornece exemplos de código Java.

Pré-requisitos

Modelo de objetos

A tabela a seguir lista as classes principais envolvidas na inicialização do modelo Timeline e suas finalidades.

Classe

Finalidade

SyncClient

Cliente síncrono para o Tablestore que oferece métodos para gerenciar tabelas e dados. Suporta políticas de nova tentativa configuráveis.

TimelineStoreFactory

Fábrica que cria instâncias de TimelineMetaStore e TimelineStore a partir de um SyncClient compartilhado.

TimelineIdentifierSchema

Defina a estrutura da coluna de chave primária para identificar timelines.

IndexSchema

Especifique os campos do índice de pesquisa para busca de texto completo e consultas booleanas.

TimelineMetaStore

Gerencie metadados das timelines. Os metadados são armazenados em uma estrutura de esquema livre e podem conter qualquer coluna.

TimelineStore

Gerencie os dados de mensagens da timeline, com suporte a IDs de sequência autoincrementais e gravação em lote.

Cadeia de dependências de inicialização

O diagrama a seguir ilustra como os componentes dependem uns dos outros durante a inicialização:

SyncClient (connection + authentication)
    |
    v
TimelineStoreFactory
    |
    +--> TimelineMetaStore (metadata table + search index)
    |        |
    |        +--> prepareTables() / dropAllTables()
    |
    +--> TimelineStore (message table + search index + batch writer)
             |
             +--> prepareTables() / dropAllTables()

Inicializar o TimelineStoreFactory

O TimelineStoreFactory é o ponto de entrada para criar stores que gerenciam metadados e dados da timeline. Inicialize-o passando uma instância de SyncClient.

A política de nova tentativa do SyncClient determina o comportamento de repetição. Configure o SyncClient com uma política personalizada. Se tiver requisitos específicos, chame a operação RetryStrategy para definir essa política.

/**
 * Configure the retry policy.
 * Code: configuration.setRetryStrategy(new DefaultRetryStrategy());
 **/
ClientConfiguration configuration = new ClientConfiguration();

SyncClient client = new SyncClient(
        "yourEndpoint",
        // Obtain the AccessKey ID and AccessKey secret from the environment variables.
        System.getenv("TABLESTORE_ACCESS_KEY_ID"),
        System.getenv("TABLESTORE_ACCESS_KEY_SECRET"),
        "yourInstanceName", configuration);

TimelineStoreFactory serviceFactory = new TimelineStoreFactoryImpl(client);

Inicializar o TimelineMetaStore

O TimelineMetaStore gerencia os metadados das suas timelines. Para inicializá-lo, defina um esquema que especifique a estrutura da coluna de chave primária (Identifier) e a configuração do índice de pesquisa (MetaIndex). Em seguida, use o TimelineStoreFactory para criar o store.

Especifique os seguintes parâmetros: nome da tabela de metadados, nome do índice de pesquisa, coluna de chave primária e tipo do índice de pesquisa.

TimelineIdentifierSchema idSchema = new TimelineIdentifierSchema.Builder()
        .addStringField("timeline_id").build();

IndexSchema metaIndex = new IndexSchema();
metaIndex.setFieldSchemas(Arrays.asList(//Specify the names and types of index fields.
        new FieldSchema("group_name", FieldType.TEXT).setIndex(true).setAnalyzer(FieldSchema.Analyzer.MaxWord),
        new FieldSchema("create_time", FieldType.LONG).setIndex(true)
));

TimelineMetaSchema metaSchema = new TimelineMetaSchema("groupMeta", idSchema)
        .withIndex("metaIndex", metaIndex); //Configure the index.

TimelineMetaStore timelineMetaStore = serviceFactory.createMetaStore(metaSchema);

Criar uma tabela

Chame prepareTables() para criar uma tabela com base nos parâmetros definidos em metaSchema. Se houver um índice de pesquisa configurado em metaSchema, ele será criado após a criação da tabela.

timelineMetaStore.prepareTables();

Excluir uma tabela

Chame dropAllTables() para excluir a tabela. Caso exista um índice de pesquisa associado, o sistema o excluirá antes de excluir a tabela.

timelineMetaStore.dropAllTables();

Inicializar o TimelineStore

O TimelineStore gerencia os dados de mensagens da timeline. Assim como no TimelineMetaStore, defina um esquema que especifique a estrutura da coluna de chave primária (Identifier) e a configuração do índice de pesquisa (TimelineIndex). Depois, use o TimelineStoreFactory para criar o store.

Especifique os seguintes parâmetros: nome da tabela da timeline, nome do índice de pesquisa, coluna de chave primária e tipo do índice de pesquisa.

A operação BatchStore melhora o desempenho de concorrência com base no DefaultTableStoreWriter do Tablestore. Defina o número de threads simultâneas no pool de threads conforme sua necessidade.

TimelineIdentifierSchema idSchema = new TimelineIdentifierSchema.Builder()
        .addStringField("timeline_id").build();

IndexSchema timelineIndex = new IndexSchema();
timelineIndex.setFieldSchemas(Arrays.asList(// Specify the names and types of index fields.
        new FieldSchema("text", FieldType.TEXT).setIndex(true).setAnalyzer(FieldSchema.Analyzer.MaxWord),
        new FieldSchema("receivers", FieldType.KEYWORD).setIndex(true).setIsArray(true)
));

TimelineSchema timelineSchema = new TimelineSchema("timeline", idSchema)
        .autoGenerateSeqId() //Specify the auto-increment primary key column as the method to generate the SequenceId value.
        .setCallbackExecuteThreads(5) //Set the number of initial threads of DefaultTableStoreWriter to 5.
        .withIndex("metaIndex", timelineIndex); //Configure the index.

TimelineStore timelineStore = serviceFactory.createTimelineStore(timelineSchema);

Criar uma tabela

Chame prepareTables() para criar uma tabela com base nos parâmetros em TimelineSchema. Se houver um índice de pesquisa configurado em TimelineSchema, ele será criado após a criação da tabela.

timelineStore.prepareTables();

Excluir uma tabela

Chame dropAllTables() para excluir a tabela. Se a tabela possuir um índice de pesquisa, este será excluído antes da própria tabela.

timelineStore.dropAllTables();