DataSunrise sponsert AWS re:Invent 2024 in Las Vegas, bitte besuchen Sie uns am Stand #2158 von DataSunrise

Apache Drill Parquet-Dateiformat

Apache Drill Parquet-Dateiformat

Sind Sie auf der Suche nach einer Möglichkeit, große Datensätze effizient mit SQL zu analysieren? Apache Drill ist eine Open-Source-SQL-Abfrage-Engine, die es Ihnen ermöglicht, interaktive Analysen auf groß angelegten Datensätzen durchzuführen. Eine der Hauptmerkmale, die Apache Drill so leistungsfähig machen, ist die Unterstützung des Apache Drill Parquet-Dateiformats.

Dieser Artikel erläutert die Parquet-Dateistruktur und geht auf ihre Rolle bei der Erleichterung von SQL auf Hadoop ein. Außerdem wird der Grund für das Design selbstbeschreibender Datenfiles zur schnellen Verarbeitung erläutert. Am Ende werden Sie verstehen, wie Apache Drill und Parquet Ihnen helfen können, effizienter mit großen Datensätzen zu arbeiten. Dies wird Ihnen ein solides Verständnis dieser Werkzeuge vermitteln.

Was ist das Apache Parquet-Dateiformat?

Parquet ist ein open-source, spaltenorientiertes Daten-Dateiformat, das für die effiziente Speicherung und den Abruf großer Datensätze entwickelt wurde. Parquet wurde 2013 von Cloudera und Twitter entwickelt und ist nun Teil des Apache Hadoop-Ökosystems.

Einige Schlüsselmerkmale von Parquet sind:

  • Spaltenorientiertes Speicherformat
  • Flexible Kompressionsoptionen
  • Effiziente Kodierungsschemata
  • Unterstützung komplexer verschachtelter Datenstrukturen

Parquets spaltenorientierte Speicherung ist besonders vorteilhaft für Abfragen, die nur einen Teil der Spalten lesen müssen. Parquet speichert Daten in Spalten, nicht in Zeilen. Dies reduziert die Menge der Daten, die von der Festplatte gelesen werden müssen, und beschleunigt Abfragen.

Wie Parquet SQL auf Hadoop ermöglicht

Die Verwendung von Parquet mit Apache Drill erleichtert die Analyse von Hadoop-Daten mit SQL-Abfragen. Drill enthält eine SQL-Engine basierend auf dem SQL:2011-Standard mit einigen Erweiterungen. Es kann Parquet-Dateien durchsuchen, ohne die Daten zuerst in eine separate Datenbank oder ein Data Warehouse laden zu müssen.

Hier ist ein einfaches Beispiel dafür, wie Sie mit Drill eine SQL-Abfrage auf eine Parquet-Datei durchführen könnten:

SELECT * FROM dfs.`/path/to/parquet/file`;

Diese Abfrage wählt alle Spalten aus der angegebenen Parquet-Datei aus. Drill erkennt automatisch das Schema der Parquet-Datei und stellt die Daten als SQL-Tabelle zur Verfügung.

Sie können auch komplexere Abfragen, wie Aggregationen und Joins, auf Parquet-Daten mit standardmäßiger SQL-Syntax ausführen. Zum Beispiel:

SELECT
product_category,
SUM(total_sales) AS category_sales
FROM dfs.`/path/to/sales.parquet`
GROUP BY product_category
ORDER BY category_sales DESC;

Diese Abfrage berechnet die Gesamtkäufe für jede Produktkategorie aus einer Parquet-Datei, die Verkaufsdaten enthält. Es gruppiert die Ergebnisse nach Kategorie und sortiert sie in absteigender Reihenfolge.

Selbstbeschreibende Daten-Dateien

Ein weiteres Schlüsselmerkmal von Parquet ist, dass es ein selbstbeschreibendes Dateiformat ist. Das bedeutet, dass Parquet-Dateien sowohl die Daten selbst als auch Metadaten über das Schema und die Datentypen enthalten.

Die selbstbeschreibende Natur von Parquet-Dateien hat mehrere Vorteile:

  1. Schema-Evolution: Das Schema kann sich im Laufe der Zeit weiterentwickeln, ohne dass alle Dateien aktualisiert werden müssen.
  2. Schema-Erkennung: Tools wie Apache Drill können das Schema automatisch erkennen.
  3. Durchsetzung des Schemas beim Schreiben, um Datenkonsistenz zu gewährleisten und die Datenintegrität zu verbessern.

Hier ist ein Beispiel dafür, wie die Metadaten in einer Parquet-Datei aussehen könnten:

creator: parquet-mr version 1.8.1 (build 4aba4dae7bb0d4edbcf7923ae1339f28fd3f7fcf)
extra: parquet.avro.schema = {"type":"record","name":"schema","namespace":"com.example","fields":[{"name":"id","type":"int"},{"name":"name","type":"string"},{"name":"address","type":{"type":"record","name":"ADDRESS","fields":[{"name":"street","type":"string"},{"name":"city","type":"string"},{"name":"state","type":"string"},{"name":"zip","type":"string"}]}}]}
file schema: schema
--------------------------------------------------------------
id: OPTIONAL INT64 R:0 D:1
name: OPTIONAL BINARY L:STRING R:0 D:1
address: OPTIONAL GROUP R:0 D:1
.street: OPTIONAL BINARY L:STRING R:0 D:1
.city: OPTIONAL BINARY L:STRING R:0 D:1
.state: OPTIONAL BINARY L:STRING R:0 D:1
.zip: OPTIONAL BINARY L:STRING R:0 D:1

Wie Sie sehen können, umfassen die Metadaten Details wie die Parquet-Version, Avro-Schema, und die Struktur der Spalten und Datentypen. Wenn Drill diese Datei liest, kann es das eingebettete Schema verwenden, um die Daten automatisch ohne zusätzliche Konfiguration über SQL abfragbar zu machen.

Optimierte Dateiverarbeitung

Parquet-Dateien sind auf schnelles Processing auf mehrere Weisen optimiert.

  1. Spaltenauswahl: Die Abfrage liest nur die benötigten Spalten von der Festplatte.
  2. Prädikat-Pushdown: Das Filtern wird auf die Datenebene verschoben, um effiziente Scans zu ermöglichen.
  3. Kodierung und Kompression: Intelligente Kodierung und Kompression verbessern die Speicherung und Leistung.

Schauen wir uns ein Beispiel an, um zu veranschaulichen, wie die Spaltenauswahl funktioniert. Betrachten Sie eine Parquet-Datei, die eine Tabelle mit den Spalten A, B und C darstellt.

Wenn wir eine Abfrage wie diese ausführen:

SELECT A FROM table;

Muss nur die Daten für die Spalte ‘A’ aus der Datei gelesen werden, nicht die gesamte Tabelle. Dies kann die Festplatten-I/O erheblich reduzieren und die Abfrageleistung verbessern, insbesondere für breite Tabellen mit vielen Spalten.

Apache Drill, wie viele andere Big-Data-Abfrage-Engines, unterstützt sowohl Partitionsauswahl als auch Spaltenauswahl bei der Arbeit mit entsprechenden Datenlayouts und Dateiformaten. Spaltenauswahl in Apache Drill funktioniert standardmäßig, wenn Sie Parquet-Dateien abfragen. Sie müssen keine zusätzliche Konfiguration durchführen oder spezielle Einstellungen angeben, um diese Optimierung zu nutzen.

Eine weitere Optimierung, Prädikat-Pushdown, minimiert die Menge an Daten, die das System verarbeiten muss. Wenn eine Abfrage eine WHERE-Klausel enthält, kann Parquet das Filtern auf die Dateiebene verschieben und nur die übereinstimmenden Zeilen zurückgeben.

Zum Beispiel, wenn wir eine Abfrage wie diese haben:

SELECT *
FROM users
WHERE age > 30;

Parquet kann ganze Zeilengruppen überspringen, die nicht dem Altersfilter entsprechen, und erspart so das Lesen und Deserialisieren dieser Daten.

Schließlich verwendet Parquet effiziente Kompressionsalgorithmen und Kodierungsschemata, um die Dateigröße zu reduzieren und gleichzeitig schnelle Abfragen zu ermöglichen. Einige übliche Kompressionscodecs, die mit Parquet verwendet werden, sind Snappy, Gzip und LZO.

Arbeiten mit Parquet in Apache Drill

Um mit Parquet und Drill zu beginnen, müssen Sie zuerst Drill installieren, das Sie von der Apache Drill-Website herunterladen können. Drill unterstützt das Lesen von Parquet-Dateien aus verschiedenen Quellen, einschließlich:

  • Lokales Dateisystem
  • Hadoop Distributed File System (HDFS)
  • Amazon S3
  • Azure Blob Storage
  • Google Cloud Storage

Sobald Sie Drill installiert und konfiguriert haben, können Sie die Drill-Shell oder die Drill-Web-UI verwenden, um Abfragen auf Ihre Parquet-Daten auszuführen.

Hier ist ein Beispiel dafür, wie Sie eine Tabelle aus einer Parquet-Datei mithilfe der Drill-Shell erstellen:

0: jdbc:drill:zk=local>
USE dfs.tmp;
CREATE TABLE users AS
SELECT * FROM dfs.`/path/to/users.parquet`;

Dies erstellt eine neue Drill-Tabelle namens “users” aus einer Parquet-Datei, die auf dem Dateisystem gespeichert ist. Sie können jetzt Abfragen auf dieser Tabelle ausführen wie bei jeder anderen SQL-Tabelle.

Zum Beispiel:

SELECT
name,
age
FROM users
WHERE age > 30
ORDER BY age DESC;

Wenn Sie Parquet-Dateien verwenden, die nach Datum oder Schlüssel partitioniert sind, kann Drill unnötige Daten vermeiden, indem es die Partitionsauswahl verwendet. Partitioniertes Parquet ist eine gängige Technik zur Strukturierung von Daten auf eine Weise, die für die Abfrageleistung optimal ist.

Fazit

Dieser Artikel erklärt das Apache Drill Parquet-Dateiformat und wie es hilft, SQL effizient auf Hadoop auszuführen. Wir haben die Vorteile von Parquets Spaltenorientierung, selbstbeschreibenden Daten-Dateien und Abfrageoptimierungen untersucht.

Durch die Verwendung von Apache Drill mit Parquet können Sie die Leistungsfähigkeit interaktiver SQL-Analysen auf riesigen Datensätzen freischalten. Drill funktioniert einfach mit standardmäßiger SQL- und JDBC/ODBC-Unterstützung, sodass es einfach ist, sich mit aktuellen BI- und Datenvisualisierungswerkzeugen zu verbinden.

Apache Drill und Parquet bieten eine starke und anpassungsfähige Plattform für Big-Data-Analysen. Ob Sie Daten analysieren, Berichte erstellen oder Echtzeit-Dashboards verwenden, diese Werkzeuge können Ihnen helfen, die Aufgabe zu erledigen. Um mehr zu erfahren, schauen Sie sich die offizielle Dokumentation von Apache Drill an.

DataSunrise unterstützt Datenentdeckung für Parquet-Dateien. Diese Funktion hilft Organisationen, Datenvorschriften einzuhalten und die Datensicherheit zu verbessern. Die Datenentdeckung ermöglicht es Ihnen, Ihre Parquet-Dateien zu durchsuchen, um sensible Daten und persönlich identifizierbare Informationen (PII) zu identifizieren. Mit diesem Wissen können Sie geeignete Maßnahmen ergreifen, um Ihre Daten zu schützen und zu verwalten.

DataSunrise bietet eine umfassende Suite von Datensicherheitswerkzeugen, darunter Datenentdeckung, Datenmaskierung, Verhinderung von Datenverlust und Überwachung von Datenbankaktivitäten. Diese Werkzeuge integrieren sich nahtlos mit verschiedenen Datenbanken, Data Warehouses und Big-Data-Plattformen und bieten eine flexible und robuste Lösung für Ihre Datensicherheitsanforderungen.

Bitte fordern Sie eine Online-Demo an, um aus erster Hand zu sehen, wie unsere Tools Ihnen helfen können, die Datensicherheit zu verbessern, Vorschriften einzuhalten und Ihre sensiblen Informationen zu schützen.

Nächste

AWS ECS Architektur

AWS ECS Architektur

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Allgemeine Informationen:
[email protected]
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
[email protected]