AWS Athena ist ein flexibler, kostengünstiger Abfragedienst für die in AWS S3 gespeicherten Daten.

AWS ist einer der größten Cloud-Anbieter der Welt. Es bietet eine Vielzahl von Diensten für Cloud-Speicher- und Rechenanforderungen. AWS S3 ist einer der beliebtesten Dienste auf der AWS-Plattform. Es bietet eine beispiellose Haltbarkeit und Verfügbarkeit von Daten und ist gleichzeitig eine der günstigsten Speicheroptionen in der Cloud.

Aufgrund der Vielzahl von Funktionen und des theoretisch unendlichen Speicherplatzes ist es möglich, dass Sie Terabytes oder Petabytes an Daten in S3-Buckets haben. Die Analyse solcher Daten ist fast unmöglich, wenn wir jede einzelne Datei öffnen und Petabytes an Daten manuell durchlesen müssten. Hier kommt der AWS Athena Service ins Spiel.

In einfachen Worten, AWS-Athena wird als Datenanalysedienst verwendet, indem einfach über SQL-Abfragen auf die im S3-Bucket verfügbaren Daten zugegriffen wird. Wenn Sie also auch nur die Grundlagen von SQL verstehen, können Sie mit der Analyse von S3-Daten mit AWS Athena beginnen.

Lassen Sie uns dies anhand eines kurzen Beispiels verstehen. Nehmen wir an, Sie haben einen Ihrer Buckets als Zugriffsprotokoll-Bucket für alle Balancer konfiguriert, die Sie in mehreren Konten in Ihrer Organisation haben. Wie würden Sie Protokolldaten von Jahren abfragen und wichtige aussagekräftige Erkenntnisse aus diesen Protokolldateien gewinnen? Die Antwort ist AWS Athena.

YouTube-Video

Features of AWS Athena

  • SQL-basiertes Tool: AWS Athena ist ein sehr einfach zu verwendender, SQL-basierter Dienst. Sie verweisen Athena einfach auf einen Ihrer Buckets, definieren das Schema Ihrer Daten und beginnen dann mit der Verwendung der SQL-Abfragen in Ihrem Bucket.
  • Serverlos: Sie müssen keine Infrastruktur für die Ausführung von AWS Athena unterhalten. Athena ist serverlos und für die automatische Nutzung mehrerer Rechenressourcen gemäß Ihren Anforderungen optimiert.
  • Schnell und optimiert: Athena wurde optimiert, um eine effiziente Anzahl von Ressourcen zu nutzen, um Ihre Abfrageergebnisse so schnell wie möglich bereitzustellen. Es funktioniert hervorragend mit kleinen und komplexen Analysen der S3-Daten.
  • Kosteneffizient: Athena ist ein Pay-as-you-use-Dienst. Das bedeutet, dass für die Nutzung von AWS Athena keine Grundkosten anfallen; Sie zahlen nur für die Abfragen, die Sie im Athena-Dienst ausführen.
  • Haltbarkeit und Verfügbarkeit der Daten: Da sich Athena auf die Daten in Ihren S3-Buckets verlässt, können Sie sicher sein, dass die Daten hochverfügbar und dauerhaft sind.
  • Kundendienst: Athena unterstützt mehrere Dateiformate wie JSON, CSV, Avro, ORC und mehr.
  • Sicherheit: Athena nutzt Sicherheitsfunktionen wie IAM, Bucket-Richtlinien und ACLs, die es sehr sicher machen.
  • Athena-Backend: Athena verwendet die Open Source Presto als Backend. Presto ist eine verteilte SQL-Engine zum Abfragen und Analysieren von Big-Data-Workloads. 

Pricing and optimization of AWS Athena

Bei Verwendung von AWS Athena wird Ihnen eine Gebühr von 5 $ pro gescanntem Terabyte bei Verwendung von AWS Athena berechnet. Dieser Preis kann für einige AWS-Regionen leicht abweichen.

  • Effiziente Abfragen: Wenn Sie vertraut sind SQL, müssen Sie wissen, dass es mehrere Möglichkeiten gibt, bestimmte Ergebnisse aus Daten mit SQL zu erhalten. Um Athena zu optimieren, können Sie effiziente Abfragen verwenden, die weniger Zeit zum Ausführen Ihrer Abfragen benötigen sollten.
  • Datentransformation: Wenn Sie Ihre Abfragen weiter optimieren möchten, können Sie Ihre Daten komprimieren, partitionieren oder in ein kleineres Dataset konvertieren, wodurch die Ausführungszeit Ihrer Abfrage weiter verkürzt wird. Mithilfe der Datentransformation können Sie Ihre Abfrage um bis zu 90 % optimieren.
  • Beitreten zu virtuellen Tischen: Das Verknüpfen von Tabellen ist ein sehr wichtiges Feature von SQL. Obwohl es wie eine einfache Operation erscheinen mag, kann es eine sehr komplexe Operation sein. Es wird empfohlen, größere Tabellen links und Tabellen mit weniger Daten rechts zu halten.
YouTube-Video

Difference between AWS Athena and Redshift Spectrum

Redshift Spectrum ist ein weiterer Service, der zum Ausführen von Abfragen auf AWS S3-Buckets verwendet werden kann. Sowohl Redshift Spectrum als auch Athena sind serverlos, können komplexe Abfragen auf S3 ausführen und haben einen Preis von 5 % pro Terrabyte verarbeiteter Daten. Was ist also der Unterschied?

LEISTUNG

AWS Athena verwendet Rechenressourcen aus einem von AWS bereitgestellten Ressourcenpool. Im Gegensatz dazu verwendet das Redshift-Spektrum die Ressourcen, die gemäß der Redshift-Clustergröße zugewiesen wurden. Dadurch haben Sie mehr Kontrolle über die Ressourcen, die vom Redshift Spectrum-Dienst verwendet werden, und wenn Sie eine verbesserte Leistung wünschen, können Sie jederzeit die Größe Ihres Redshift-Clusters erhöhen.

Laden der Daten zur Verarbeitung

Beide Dienste verwenden virtuelle Tabellen, um SQL-Abfragen für Ihre Daten auszuführen. Virtuelle Tabellen werden mithilfe des Glue-Datenkatalogs für die Schemaverwaltung erstellt. Athena kann die Daten aus dem Glue Data Catalog-Schema direkt verwenden, während Sie bei Verwendung von Redshift Spectrum externe Tabellen aus dem Glue Data Catalog-Schema konfigurieren müssen.

Dies sind die Hauptunterschiede zwischen den beiden Diensten, also bei der Wahl zwischen Redshift-Spektrum und Athena. Sie sollten Redshift Spectrum verwenden, wenn Sie Daten in S3 zusammen mit den im Redshift Data Warehouse gespeicherten Daten abfragen möchten oder bereit sind, höhere Kosten zu zahlen, um Ihre Abfrageleistung in S3 zu verbessern. Athena kann nützlich sein, wenn sich alle Ihre Daten nur in den S3-Buckets befinden.

Difference between AWS Athena and S3 Select

S3 select ist ein weiterer serverloser Dienst von AWS zum Abfragen von Daten in S3 mithilfe von SQL. Der Hauptunterschied zwischen S3 Select und Athena besteht jedoch darin, dass Sie bei der Verwendung von S3 Select nur die SQL SELECT-Abfragen verwenden können, während Athena für alle Arten von SQL-Abfragen verwendet werden kann. Eine weitere Einschränkung von S3 select besteht darin, dass Sie die SELECT-Operation jeweils nur für ein Objekt ausführen können.

Wenn Sie also nur Daten oder eine Teilmenge von Daten aus einem S3-Objekt abrufen möchten, sollten Sie S3 Select verwenden. Für komplexe Abfragen und Operationen wie JOIN oder um die Daten in einem ganzen S3-Bucket zu verarbeiten, sollten Sie AWS Athena verwenden.

Advantages of using AWS Athena

  • Athena beseitigt die Notwendigkeit, ein komplexes und teures Datenanalysetool für Ihre Daten zu entwickeln.
  • Athena ist serverlos, was es zu einem ziemlich einfach zu bedienenden Dienst macht. Sie müssen die Infrastruktur nicht warten.
  • AWS hat Athena so optimiert, dass Abfrageergebnisse innerhalb von Sekunden nach Ausführung der Athena-Abfrage abgerufen werden können.
  • Da Athena serverlos ist, müssen Sie den Athena-Dienst nicht bezahlen. Sie zahlen nur für die Abfragen, die Sie ausführen möchten. Selbst wenn Sie eine Abfrage stornieren, werden Ihnen nur die verarbeiteten Daten und nicht die gesamte Abfrage in Rechnung gestellt.
  • Athena kann problemlos in andere AWS-Services integriert werden. Eine der wichtigsten und wertvollsten Integrationen für AWS Athena ist der AWS Glue-Service. AWS Glue ist ein ETL Dienst, der verwendet werden kann, um Daten in eine effizientere und lesbarere Form umzuwandeln, die dann mit AWS Athena analysiert werden können.
  • Mit Athena können Sie mehrere Abfragen gleichzeitig ausführen.

Limitations of AWS Athena

  • Zeilengröße: Die Zeilengröße in einer virtuellen AWS Athena-Tabelle sollte nicht überschreiten 32 Megabyte. Dieses Limit kann in sehr begrenzten Fällen für CSV- und JSON-Dateien auf bis zu 100 Megabyte erhöht werden, es wird jedoch dringend empfohlen, die Zeilengröße auf 32 Megabyte zu begrenzen, um unerwünschte Fehler zu vermeiden.
  • Versteckte Dateien: Dateien, deren Namen mit einem Unterstrich (_) oder Punkt (.) beginnen, werden vom Athena-Dienst als ausgeblendet behandelt. Dies kann als Funktion verwendet werden, um die Verarbeitung unerwünschter Dateien zu vermeiden.
  • Athena ist Daten können in S3 Glacier nicht verarbeitet werden oder S3 Glacier Deep Archive. Diese Speicherklassen sind nur für Datenarchivierungsoptionen und haben eine Abrufzeit von Minuten bis Stunden, daher ist es verständlich, wenn AWS Athena keine Daten aus diesen Klassen abrufen kann.
  • Athena unterstützt nicht Gespeicherte Prozeduren.
  • Athena-Version 1 unterstützt keine parametrisierten Abfragen. Dies wird in der Athena-Version 2 unterstützt.
  • Anweisungen wie MERGE, UPDATE, CREATE TABLE LIKE, DESCRIBE INPUT und  DESCRIBE OUTPUT werden nicht unterstützt.

Fazit

In diesem Artikel haben wir das Datenanalysetool von AWS, AWS Athena, seine Funktionen, Vorteile und einige Einschränkungen besprochen. Athena ist eines der leistungsstärksten Tools zur Verarbeitung und Analyse von Daten in S3-Buckets. Sogar die Einschränkungen des Dienstes sind ziemlich einfach und können bei Bedarf umgangen werden.

Sie können sich auch einige Best Practices ansehen sicherer AWS S3-Speicher.