2017-03-29 2 views
2

Gibt es eine Möglichkeit, eine Tabelle in Amazon Athena direkt von Parkett-Datei basierend auf avro Schema zu erstellen? Das Schema ist in die Datei kodiert, so dass es dumm erscheint, dass ich die DDL selbst erstellen muss.Athena erstellen Tabelle aus Parkett Schema

sah ich this und auch eine andere duplication

aber sie werden direkt an Hive, es wird nicht funktionieren für Athena verwandt. Idealerweise suche ich nach einer Möglichkeit, es programmgesteuert zu machen, ohne es an der Konsole definieren zu müssen.

+0

Es wäre produktiver sein, es zu versuchen (oder zumindest die Dokumentation lesen - http://docs.aws.amazon.com/athena/latest/ug/creating-tables.html), als dass es die Zukunft ‚gewonnen t arbeiten. –

+0

gelesen und versuchte, Athena unterstützt nur AUSSEN CREATE TABLE wird die vorgeschlagene Lösung basiert auf ÜBERSICHT für das Avro-Schema CREATE und nur als für das Parkett Außen erstellen – NetanelRabinowitz

+0

So eine externe Tabelle erstellen. Warum sollte es wichtig sein? –

Antwort

0

Es scheint nicht mit Athena möglich zu sein als avro.schema.url keine unterstützte Eigenschaft ist.

table property 'avro.schema.url' is not supported. (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException...)

können Sie verwenden avro.schema.literal (Sie hätte den Avro json Schema, um die Abfrage zu kopieren), aber ich noch erlebt Probleme danach die Daten abfragt.

seltsame Fehler wie: SYNTAX_ERROR: line 1:8: SELECT * not allowed in queries without FROM clause

+1

Der "seltsame Fehler", den Sie erwähnt haben, scheint ein Fehler in presto zu sein: https://github.com/prestodb/presto/issues/8654 – fiorix

0

Dies ist jetzt mehr oder weniger möglich AWS Glue verwenden. Glue kann eine Reihe verschiedener Datenquellen crawlen, einschließlich Parquet files on S3. Entdeckte Tabellen werden dem Glue-Datenkatalog hinzugefügt und von Athena abgefragt. Abhängig von Ihren Anforderungen können Sie einen Glue-Crawler für die regelmäßige Ausführung planen oder Sie können einen Crawler mithilfe der Glue-API definieren und ausführen.

Wenn Sie viele separate Datenhälften haben, die ein Schema gemeinsam haben, können Sie auch partitioned table verwenden, um den Aufwand für die Bereitstellung neuer Lasten für Athena zu reduzieren. Zum Beispiel habe ich einige tägliche Speicherauszüge, die in nach Datum partitionierte Tabellen laden. Solange sich das Schema nicht ändert, müssen Sie nur noch MSCK REPAIR TABLE eingeben.

Verwandte Themen