2016-05-06 13 views
1

Ich verwende die Presto REST API, um die Datenbank abzufragen, aber alle meine Sitzungen scheinen kurzlebig zu sein. Zum Beispiel, wenn ich so etwas wieWie verwalten Sie Presto-Abfragesitzungsvariablen mithilfe der REST-API?

query_presto('set session columnar_processing = true') query_presto('show session')

Trotz der column_processing Variable in der ersten Abfrage Einstellung wird die zweite Abfrage zeigt, dass column_processing noch der Standardwert falsch ist.

Ich habe irgendwo gelesen, dass

Presto Sitzungen für jeden authentifizierten Benutzer verwaltet. Diese Sitzung läuft ab, wenn innerhalb der für Presto konfigurierten Zeitüberschreitungsperiode keine neuen Anforderungen empfangen werden.

Allerdings kann ich diese Konfiguration weder im Code noch in der Dokumentation finden.

Meine Frage ist, wie ich eine Datenbanksitzung mit der RESTful API pflegen?

Antwort

3

Nach zu viel Zeit zu graben um, fand ich, dass es einen Header X-Presto-Session, die Sie durch Komma getrennte Variablen gesetzt, dh

curl --data "show session" http://127.0.0.1:8889/v1/statement/ --header "X-Presto-User: myuser" --header "X-Presto-Schema: myschema" --header "X-Presto-Time-Zone: UTC" --header "X-Presto-Catalog: mycatalog" --header "User-Agent: myagent" --header "X-Presto-Session: session_variable_1=900,session_variable_2=true"

Trotz allem, was der Doc sagt, ich glaube nicht, dass es eine Möglichkeit für Presto, Sitzungsvariablen zu speichern, die in vorherigen Ausführungen festgelegt wurden. Ich muss sie lokal in meinem Programm zwischenspeichern und sie bei jeder Ausführung übergeben.

+1

Hey @wonton, danke, dass du dich selbst beantwortet hast - das war ein Lebensretter! – Tarek