DataSunrise erreicht AWS DevOps Kompetenz Status in AWS DevSecOps und Überwachung, Protokollierung, Performance

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 erklärt: Skalierbarkeit, Sicherheit und Einfachheit

AWS ECS-Architektur erklärt: Skalierbarkeit, Sicherheit und Einfachheit

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Countryx
United States
United Kingdom
France
Germany
Australia
Afghanistan
Islands
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Bouvet
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo, Republic of the
Congo, The Democratic Republic of the
Cook Islands
Costa Rica
Cote D'Ivoire
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guernsey
Guinea
Guinea-Bissau
Guyana
Haiti
Heard Island and Mcdonald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic Of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
North Macedonia, Republic of
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Palestinian Territory, Occupied
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Pierre and Miquelon
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Serbia and Montenegro
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
Sudan
Suriname
Svalbard and Jan Mayen
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British
Virgin Islands, U.S.
Wallis and Futuna
Western Sahara
Yemen
Zambia
Zimbabwe
Choose a topicx
Allgemeine Informationen
Vertrieb
Kundenservice und technischer Support
Partnerschafts- und Allianz-Anfragen
Allgemeine Informationen:
info@datasunrise.com
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
partner@datasunrise.com