Use a consulta MatchAll para corresponder a todas as linhas de uma tabela, obter o número total de linhas e retornar várias linhas aleatórias.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar um cliente do Tablestore.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de pesquisa criado para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Parâmetros
|
Parâmetro |
Descrição |
|
query |
Tipo da consulta. Defina o parâmetro query como MatchAllQuery. |
|
table_name |
Nome da tabela de dados. |
|
index_name |
Nome do índice de pesquisa. |
|
limit |
Número máximo de linhas a serem retornadas pela consulta atual. Para consultar apenas a quantidade de linhas correspondentes às condições sem retornar dados específicos, defina limit como 0. Dessa forma, o Tablestore retorna a contagem de linhas correspondentes sem incluir dados da tabela. |
|
get_total_count |
Especifique se o número total de linhas correspondentes às condições da consulta deve ser retornado. Valor padrão: false. O valor false indica que a contagem total não é retornada. Defina este parâmetro como true compromete o desempenho da consulta. |
|
columns_to_get |
Especifique se todas as colunas de cada linha correspondente devem ser retornadas.
|
Exemplos
O código de exemplo a seguir demonstra como consultar o número total de linhas em uma tabela:
-
Tablestore SDK for Python V5.2.1 ou posterior
Por padrão, ao executar uma consulta MatchAll com o Tablestore SDK for Python V5.2.1 ou posterior, um objeto SearchResponse é retornado. O código a seguir mostra um exemplo de solicitação:
query=MatchAllQuery() all_rows=[] next_token=None first_page=True while first_page or next_token: search_response=client.search(table_name, index_name, SearchQuery(query,next_token=next_token,limit=100,get_total_count=True), columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED)) all_rows.extend(search_response.rows) first_page=False for row in all_rows: print(row) print('Totalrows:', len(all_rows))Use o exemplo a seguir para retornar resultados do tipo Tuple:
query=MatchAllQuery() all_rows=[] next_token=None first_page=True while first_page or next_token: rows, next_token, total_count, is_all_succeed, agg_results, group_by_results =client.search(table_name, index_name, SearchQuery(query,next_token=next_token,limit=100,get_total_count=True), columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED)).v1_response() all_rows.extend(rows) first_page=False for row in all_rows: print(row) print('Totalrows:', len(all_rows)) -
Tablestore SDK for Python anterior à versão V5.2.1
Ao executar uma consulta MatchAll com versões do Tablestore SDK for Python anteriores à V5.2.1, os resultados do tipo TUPLE são retornados por padrão. Veja o exemplo de solicitação a seguir:
query=MatchAllQuery() all_rows=[] next_token=None first_page=True while first_page or next_token: rows, next_token, total_count, is_all_succeed = client.search(table_name, index_name, SearchQuery(query, next_token=next_token, limit=100, get_total_count=True), columns_to_get=ColumnsToGet(['k', 't', 'g', 'ka', 'la'], ColumnReturnType.SPECIFIED)) all_rows.extend(rows) first_page=False for row in all_rows: print(row) print('Total rows:', len(all_rows))