Im Dezember 2012, als sich Cloudera Impala noch in der Betaphase befand, stellten wir eine Roadmap für geplante Funktionen in der Produktionsversion bereit. In dem gleichen Geist, Impala-Benutzer, Kunden und Enthusiasten auf dem Laufenden zu halten, bietet dieser Beitrag eine aktualisierte Roadmap für kommende Veröffentlichungen später in diesem Jahr und Anfang 2014.
Aber zuerst ein Dankeschön:Seit der ersten Beta-Version haben wir eine enorme Menge an Feedback und Bestätigungen zu Impala erhalten – reichlich in Qualität und Quantität. Mindestens eine Person in etwa 4.500 einzelnen Organisationen auf der ganzen Welt hat die Impala-Binärdatei bis heute heruntergeladen. Und selbst nach nur wenigen Monaten GA haben wir gesehen, dass Cloudera Enterprise-Kunden aus verschiedenen Branchen Impala 1.x in geschäftskritischen Umgebungen mit Unterstützung über ein Cloudera RTQ-Abonnement (Real-Time Query) bereitstellen – darunter führende Organisationen in den Bereichen Versicherung, Banken, Einzelhandel, Gesundheitswesen, Spiele, Behörden, Telekommunikation und Werbung.
Darüber hinaus würden, basierend auf der Reaktion anderer Anbieter im Datenmanagementbereich, nur wenige Beobachter die Vorstellung bestreiten, dass Impala interaktive SQL-Abfragen mit niedriger Latenz für Hadoop zu einer ebenso wichtigen Kundenanforderung gemacht hat wie die Batch-orientierten SQL-Abfragen mit hoher Latenz aktiviert durch Apache Hive. Das ist eine großartige Entwicklung für Hadoop-Benutzer überall!
Was in Impala 1.0/1.1 bereitgestellt wurde
Beginnen wir mit einem Zeugnis der zuvor veröffentlichten Impala 1.0/1.1-Roadmap. Hier ist die Funktionsliste, gruppiert nach Lieferstatus:
Geliefert:
| Aufgrund von Kundenfeedback verschoben:
|
Darüber hinaus bieten Impala 1.1 und höher dank der Hinzufügung des Apache Sentry-Moduls (Inkubation) jetzt auch eine granulare, rollenbasierte Autorisierung, die sicherstellt, dass die richtigen Benutzer und Anwendungen Zugriff auf die richtigen Daten haben. (Mit dem jüngsten Beitrag von Sentry zum Apache Incubator und von HiveServer2 zu Hive von Cloudera haben Hive 0.11 und höher diese Funktionalität ebenfalls.)
Es wurde viel getan, aber es gibt noch viel zu tun. Nun zum Impala 2.0 wave.
Kurzfristige Roadmap
Die folgende neue Impala-Funktionalität wird inkrementell in nahen zukünftigen Versionen veröffentlicht, beginnend mit Impala 1.2 Ende 2013 und endend mit Impala 2.0 im ersten Drittel des Jahres 2014. Darüber hinaus werden Sie weitere Leistungssteigerungen und Verbesserungen der SQL-Funktionalität in sehen jeder Version – mit dem Ziel, den Leistungsvorsprung von Impala gegenüber den alternativen SQL-on-Hadoop-Ansätzen von älteren Anbietern relationaler Datenbanken sowie Anbietern von Hadoop-Distributionen auszubauen.
Bitte beachten Sie, wie es bei Roadmaps immer der Fall ist, dass sich Zeitpläne und Funktionen jederzeit ändern können. Was Sie unten sehen, spiegelt jedoch unseren aktuellen Plan der Aufzeichnungen wider.
Impala 1.2
- UDFs und Erweiterbarkeit – ermöglicht es Benutzern, ihre eigenen benutzerdefinierten Funktionen hinzuzufügen; Impala wird vorhandene Hive-Java-UDFs sowie leistungsstarke native UDFs und UDAFs unterstützen
- Automatische Metadatenaktualisierung – ermöglicht, dass neue Tabellen und Daten nahtlos für Impala-Abfragen verfügbar sind, wenn sie hinzugefügt werden, ohne dass eine manuelle Aktualisierung auf jedem Impala-Knoten erfolgen muss
- In-Memory-HDFS-Caching – ermöglicht den Zugriff auf Hadoop-Daten, auf die häufig zugegriffen wird, mit In-Memory-Geschwindigkeit
- Kostenbasierte Optimierung der Join-Reihenfolge – befreit den Benutzer davon, die richtige Join-Reihenfolge erraten zu müssen
- Vorschau des YARN-integrierten Ressourcenmanagers – ermöglicht die Priorisierung von Workloads mit einer feineren Granularität als die derzeit in Cloudera Manager bereitgestellte Isolierung auf Dienstebene
Impala 2.0
Die folgende Liste erfasst nur die größeren, am häufigsten nachgefragten Funktionen; es ist keineswegs vollständig.
- SQL 2003-konforme Analysefensterfunktionen (Aggregation ÜBER PARTITION) – um erweiterte SQL-Analysefunktionen bereitzustellen
- Zusätzliche Authentifizierungsmechanismen – einschließlich der Möglichkeit, Benutzernamen/Passwörter zusätzlich zur bereits unterstützten Kerberos-Authentifizierung anzugeben
- UDTFs (benutzerdefinierte Tabellenfunktionen) – für erweiterte Benutzerfunktionen und Erweiterbarkeit
- Knoteninterne parallelisierte Aggregationen und Verknüpfungen – um noch schnellere Verknüpfungen und Aggregationen zusätzlich zu den Leistungssteigerungen von Impala bereitzustellen
- Verschachtelte Daten – ermöglicht Abfragen zu komplexen verschachtelten Strukturen, einschließlich Karten, Strukturen und Arrays
- Erweiterter, produktionsbereiter, in YARN integrierter Ressourcenmanager
- Parquet-Verbesserungen – kontinuierliche Leistungssteigerungen einschließlich Indexseiten
- Zusätzliche Datentypen – einschließlich Datums- und Dezimaltypen
- ORDER BY ohne LIMIT-Klauseln
Über Impala 2.0 hinaus
Die folgende Liste von Funktionen sind diejenigen, von denen wir derzeit erwarten, dass sie in 2.1 oder einer bald darauf folgenden Veröffentlichung vorhanden sein werden:
- Zusätzliche analytische SQL-Funktionalität – ROLLUP, CUBE und GROUPING SET
- Apache HBase CRUD – ermöglicht die Verwendung von Impala für Einfügungen und Aktualisierungen in HBase
- Externe Verknüpfungen mit Festplatte – ermöglicht Verknüpfungen zwischen Tabellen, die für Verknüpfungen, die Verknüpfungstabellen erfordern, die größer als die aggregierte Speichergröße sind, auf die Festplatte übertragen werden
- Unterabfragen innerhalb von WHERE-Klauseln
Je mehr wir über Kunden- und Partneranforderungen erfahren, desto länger wird diese Liste.
Schlussfolgerung
Wie Sie sehen können, hat sich Impala seit seiner Beta-Version erheblich weiterentwickelt und wird sich weiter entwickeln, wenn wir mehr Feedback von Benutzern, Kunden und Partnern sammeln.
Letztendlich glauben wir, dass Impala unser Gesamtziel bereits erreicht hat, Benutzern zu ermöglichen, alle ihre Daten in nativen Hadoop-Dateiformaten zu speichern und gleichzeitig alle Batch-, maschinellen Lern-, interaktiven SQL/BI-, Mathematik-, Such- und anderen Workloads auf diesen Daten auszuführen an Ort und Stelle. Von hier aus geht es nur noch darum, auf dieser sehr soliden Grundlage mit umfangreicheren Funktionen und verbesserter Leistung weiter aufzubauen.
Justin Erickson ist Director of Product Management bei Cloudera.