DataSunrise Logra el Estado de Competencia en AWS DevOps en AWS DevSecOps y Monitoreo, Registro, Rendimiento

Formato de Archivo Apache Drill Parquet

Formato de Archivo Apache Drill Parquet

¿Estás buscando una forma de analizar grandes conjuntos de datos de manera eficiente usando SQL? Apache Drill es un motor de consultas SQL de código abierto que te permite ejecutar análisis interactivos en conjuntos de datos a gran escala. Una de las características clave que hace que Apache Drill sea tan poderoso es su soporte para el formato de archivo Apache Drill Parquet.

Este artículo elucidará la estructura del archivo Parquet y profundizará en su rol facilitando SQL en Hadoop. Además, clarificará la lógica detrás de su diseño de archivos de datos autodescriptivos para un procesamiento rápido. Al final, comprenderás cómo Apache Drill y Parquet pueden ayudarte a trabajar más eficientemente con grandes conjuntos de datos. Esto te dará un entendimiento sólido de estas herramientas.

¿Qué es el Formato de Archivo Apache Parquet?

Parquet es un formato de archivo de datos columnar de código abierto diseñado para el almacenamiento y la recuperación eficiente de grandes conjuntos de datos. Creado en 2013 por Cloudera y Twitter, Parquet es ahora parte del ecosistema Apache Hadoop.

Algunas características clave de Parquet incluyen:

  • Formato de almacenamiento columnar
  • Opciones flexibles de compresión
  • Esquemas de codificación eficiente
  • Soporte para estructuras de datos complejas y anidadas

El almacenamiento columnar de Parquet es particularmente beneficioso para consultas que solo necesitan leer un subconjunto de columnas. Parquet almacena datos en columnas, no filas. Esto reduce la cantidad de datos leídos del disco y acelera las consultas.

Cómo Parquet Permite SQL en Hadoop

Usar Parquet con Apache Drill facilita el análisis de datos de Hadoop con consultas SQL. Drill incluye un motor SQL basado en el estándar SQL:2011 con algunas extensiones. Puede buscar archivos Parquet sin cargar los datos primero en una base de datos o almacén de datos separado.

Aquí hay un ejemplo sencillo de cómo podrías usar SQL para consultar un archivo Parquet con Drill:

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

Esta consulta selecciona todas las columnas del archivo Parquet especificado. Drill infiere automáticamente el esquema del archivo Parquet y hace que los datos estén disponibles como una tabla SQL.

También puedes realizar consultas más complejas, como agregaciones y uniones, en datos Parquet usando la sintaxis estándar de SQL. Por ejemplo:

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

Esta consulta calcula las ventas totales para cada categoría de producto a partir de un archivo Parquet que contiene datos de ventas. Agrupa los resultados por categoría y los ordena en orden descendente.

Archivos de Datos Autodescriptivos

Otra característica clave de Parquet es que es un formato de archivo autodescriptivo. Esto significa que los archivos Parquet contienen tanto los datos en sí como los metadatos sobre el esquema y los tipos de datos.

La naturaleza autodescriptiva de los archivos Parquet tiene varios beneficios:

  1. Evolución del esquema: El esquema puede evolucionar con el tiempo sin necesidad de actualizar todos los archivos.
  2. Inferencia de esquema: Herramientas como Apache Drill pueden inferir automáticamente el esquema.
  3. Aplicar esquemas al escribir para asegurar la consistencia de los datos y mejorar la integridad de los datos.

Aquí hay un ejemplo de cómo podrían verse los metadatos en un archivo Parquet:

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

Como puedes ver, los metadatos incluyen detalles como la versión de Parquet, el esquema Avro, y la estructura de las columnas y tipos de datos. Cuando Drill lee este archivo, puede usar el esquema incrustado para hacer automáticamente que los datos sean consultables a través de SQL sin ninguna configuración adicional.

Procesamiento de Archivos Optimizado

Los archivos Parquet se optimizan para un procesamiento rápido de varias maneras.

  1. Podado de columnas: La consulta lee solo las columnas necesarias desde el disco.
  2. Predicado pushdown empuja el filtrado al nivel de los datos para escaneos eficientes.
  3. Codificación y compresión: Codificación y compresión inteligentes mejoran el almacenamiento y el rendimiento.

Veamos un ejemplo para ilustrar cómo funciona el podado de columnas. Considera un archivo Parquet que representa una tabla con las columnas A, B y C.

Si ejecutamos una consulta como:

SELECT A FROM table;

Solo necesitas leer los datos de la columna ‘A’ desde el archivo, no toda la tabla. Esto puede reducir grandemente la E/S de disco y mejorar el rendimiento de la consulta, especialmente para tablas amplias con muchas columnas.

Apache Drill, como muchos otros motores de consulta de grandes datos, soporta tanto el podado de particiones como el podado de columnas cuando se trabaja con esquemas de datos y formatos de archivo adecuados. El podado de columnas en Apache Drill también funciona por defecto cuando estás consultando archivos Parquet. No necesitas hacer ninguna configuración adicional o especificar ninguna configuración especial para aprovechar esta optimización.

Otra optimización, predicado pushdown, minimiza la cantidad de datos que el sistema necesita procesar. Si una consulta contiene una cláusula WHERE, Parquet puede empujar el filtrado al nivel del archivo y devolver solo las filas coincidentes.

Por ejemplo, si tenemos una consulta como:

SELECT *
FROM users
WHERE age > 30;

Parquet puede omitir grupos de filas completos que no coinciden con el filtro de edad, evitando la necesidad de leer y deserializar esos datos.

Finalmente, Parquet utiliza algoritmos de compresión eficientes y esquemas de codificación para reducir el tamaño del archivo mientras permite consultas rápidas. Algunos códecs de compresión comunes utilizados con Parquet incluyen Snappy, Gzip y LZO.

Trabajando con Parquet en Apache Drill

Para comenzar a trabajar con Parquet y Drill, primero necesitas instalar Drill, que puedes descargar desde el sitio web de Apache Drill. Drill soporta la lectura de archivos Parquet desde una variedad de fuentes, incluyendo:

  • Sistema de archivos local
  • Sistema de archivos distribuido de Hadoop (HDFS)
  • Amazon S3
  • Azure Blob Storage
  • Google Cloud Storage

Una vez que hayas instalado y configurado Drill, puedes usar la shell de Drill o la interfaz web de Drill para ejecutar consultas en tus datos Parquet.

Aquí hay un ejemplo de cómo crear una tabla a partir de un archivo Parquet usando la shell de Drill:

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

Esto crea una nueva tabla de Drill llamada “users” a partir de un archivo Parquet almacenado en el sistema de archivos. Ahora puedes ejecutar consultas sobre esta tabla como cualquier otra tabla SQL.

Por ejemplo:

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

Si utilizas archivos Parquet particionados por fecha o clave, Drill puede evitar leer datos innecesarios utilizando el podado de particiones. El Parquet particionado es una técnica común para estructurar datos de manera óptima para el rendimiento de las consultas.

Conclusión

Este artículo explica el formato de archivo Apache Drill Parquet y cómo ayuda a ejecutar SQL de manera eficiente en Hadoop. Exploramos los beneficios del almacenamiento columnar de Parquet, los archivos de datos autodescriptivos y las optimizaciones de consulta.

Al usar Apache Drill con Parquet, puedes desbloquear el poder del análisis interactivo de SQL en conjuntos de datos masivos. Drill funciona fácilmente con SQL estándar y JDBC/ODBC, lo que hace que sea simple conectarse con las herramientas actuales de BI y visualización de datos.

Apache Drill y Parquet ofrecen una plataforma fuerte y adaptable para la analítica de grandes datos. Ya sea que estés analizando datos, creando informes o utilizando paneles en tiempo real, estas herramientas pueden ayudarte a lograr tus objetivos. Para saber más, consulta la documentación oficial de Apache Drill.

DataSunrise soporta Data Discovery para archivos Parquet. Esta característica ayuda a las organizaciones a cumplir con las regulaciones de datos y mejorar la seguridad de los datos. Data Discovery te permite escanear tus archivos Parquet para identificar datos sensibles y información personal identificable (PII). Con esta información, puedes tomar las medidas adecuadas para proteger y gobernar tus datos.

DataSunrise ofrece una suite completa de herramientas de seguridad de datos, que incluyen descubrimiento de datos, enmascaramiento de datos, prevención de pérdida de datos y monitoreo de actividades de la base de datos. Estas herramientas se integran de manera fluida con varias bases de datos, almacenes de datos y plataformas de big data, proporcionando una solución flexible y robusta para tus necesidades de seguridad de datos.

Por favor, solicita una demostración en línea para ver de primera mano cómo nuestras herramientas pueden ayudarte a mejorar la seguridad de los datos, cumplir con las regulaciones y proteger tu información sensible.

Siguiente

Arquitectura de AWS ECS Explicada: Escalabilidad, Seguridad y Simplicidad

Arquitectura de AWS ECS Explicada: Escalabilidad, Seguridad y Simplicidad

Más información

¿Necesita la ayuda de nuestro equipo de soporte?

Nuestros expertos estarán encantados de responder a sus preguntas.

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
Información General
Ventas
Servicio al Cliente y Soporte Técnico
Consultas sobre Asociaciones y Alianzas
Información general:
info@datasunrise.com
Servicio al Cliente y Soporte Técnico:
support.datasunrise.com
Consultas sobre Asociaciones y Alianzas:
partner@datasunrise.com