Exportando e Importando o Histórico de Consulta
O Presto coordenador armazena o histórico de consultas na system.runtime.queries tabela. Mas system.runtime.queries a tabela é truncada quando você reinicia Presto, resultando na perda do histórico de consultas. Para
mitigar esse problema, você pode exportar o histórico de consultas como um arquivo csv e também importar o histórico de consultas da system.runtime.queries tabela para uma tabela não pertencente ao sistema.
Recomenda-se exportar periodicamente o histórico de consulta para evitar perdê-lo.
Para importar e exportar o histórico de consultas, você deve instalar o Presto CLI. Para obter mais informações, consulte Conexão com o servidor Presto.
A partir da watsonx.data versão 2.2.0, a autenticação usando ibmlhapikey e ibmlhtoken como nomes de usuário está obsoleta. Esses formatos serão descontinuados na 2.3.0 versão. Para garantir a compatibilidade com as próximas
versões, use o novo formato:ibmlhapikey_<username> e ibmlhtoken_<username>.
Exportando histórico de consulta
Para exportar o histórico de consulta, execute o comando a seguir:
export PRESTO_PASSWORD=<your api_key>
./presto --server https://<port:host> --catalog system \
--schemaruntime --execute "select * from queries" \
--user ibmlhapikey --output-format CSV_HEADER > history.csv --password
Esse comando gera um arquivo CSV, que contém o histórico de consulta exportada
- Exemplo
./presto --server https://8dac613f-ba5b-4c3c-8c96-
ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:30929 \
--execute "select * from system.runtime.queries" --output-format CSV_HEADER \
--user ibmlhapikey output-format CSV > history.csv --password
Importando histórico de consulta
-
Para importar o histórico de consulta, crie um esquema em um catálogo no qual você tenha o acesso de gravação
create schema <non-system-catalog.schema-name> with (location=' s3a://<bucket-name>/<schema-name>')- Exemplo
./presto --server https://8dac613f-ba5b-4c3c-8c96-\ ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:30929 \ --execute "create schema hive_data.query_history with \ (location='s3a://8dac613f-ba5b-4c3c-8c96-ce8de101f7cf-customer/query_history')" \ --user ibmlhapikey --password -
Crie uma tabela no mesmo catálogo..
Essa tabela deve ter os metadados da tabela
system.runtime.queries. Use a instruçãoCREATE TABLE AS SELECTpara criar esta tabelacreate table <non-system-table-name> as select * from system.runtime.queries where 1=0;where 1=0garante que nenhuma linha seja selecionada em uma tabela, resultando em um conjunto de resultados vazio.- Exemplo
./presto --server https://8dac613f-ba5b-4c3c-8c96-ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:30929 --execute "create table hive_data.query_history.queries as select * from system.runtime.queries where 1=0" --user ibmlhapikey --password -
Para importar o histórico de consulta para a tabela recém-criada, execute a consulta a seguir periodicamente.
INSERT INTO <non-system-table-name> SELECT * FROM system.runtime.queries WHERE query_id NOT IN (SELECT query_id FROM <non-system-table-name>);- Exemplo
./presto --server \ https://8dac613f-ba5b-4c3c-8c96-ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:3092 \ –-execute "insert into hive_data.query_history.queries select * from system. runtime.queries \ where query_id not in (select query_id from hive_data.query_history.queries)" --user ibmlhapikey --password -
Para recuperar o histórico de consulta de ambas as tabelas, use a instrução a seguir.
select * from <non-system-table-name> union select * from `system.runtime.queries` order by created;- Exemplo
./presto --server \ https://23b06b14-342b-4ed2-841d-7f02ca9ae788.cdc406pd09pasng7elgg.databases.appdomain.cloud:31530 \ --execute " select * from hive_data.query_history.queries union \ select * from system.runtime.queries order by created " \ --output-format=CSV_HEADER --user ibmlhapikey --password