Format de fichier Apache Drill Parquet
Vous cherchez un moyen d’analyser de grands ensembles de données efficacement en utilisant SQL ? Apache Drill est un moteur de requêtes SQL open-source qui vous permet d’exécuter des analyses interactives sur des ensembles de données à grande échelle. L’un des principaux éléments qui rend Apache Drill si puissant est sa prise en charge du format de fichier Parquet d’Apache Drill.
Cet article va élucider la structure du fichier Parquet et explorer son rôle dans la facilitation du SQL sur Hadoop. Il clarifiera également la raison de sa conception de fichiers de données auto-descriptifs pour un traitement rapide. À la fin, vous comprendrez comment Apache Drill et Parquet peuvent vous aider à travailler plus efficacement avec de grands ensembles de données. Cela vous offrira une solide compréhension de ces outils.
Qu’est-ce que le format de fichier Apache Parquet ?
Parquet est un format de fichier de données orienté colonnes open-source conçu pour un stockage et une récupération efficaces de grands ensembles de données. Créé en 2013 par Cloudera et Twitter, Parquet fait désormais partie de l’écosystème Apache Hadoop.
Voici quelques caractéristiques clés de Parquet :
- Format de stockage en colonnes
- Options de compression flexibles
- Schémas de codage efficaces
- Prise en charge des structures de données imbriquées complexes
Le stockage en colonnes de Parquet est particulièrement avantageux pour les requêtes qui n’ont besoin que de lire un sous-ensemble de colonnes. Parquet stocke les données en colonnes, pas en lignes. Cela réduit la quantité de données lues depuis le disque et accélère les requêtes.
Comment Parquet permet le SQL sur Hadoop
Utiliser Parquet avec Apache Drill simplifie l’analyse des données Hadoop avec des requêtes SQL. Drill inclut un moteur SQL basé sur la norme SQL:2011 avec quelques extensions. Il peut rechercher des fichiers Parquet sans d’abord charger les données dans une base de données ou un entrepôt de données distinct.
Voici un exemple simple de la façon dont vous pourriez utiliser SQL pour interroger un fichier Parquet avec Drill :
SELECT * FROM dfs.`/path/to/parquet/file`;
Cette requête sélectionne toutes les colonnes du fichier Parquet spécifié. Drill déduit automatiquement le schéma du fichier Parquet et rend les données disponibles comme une table SQL.
Vous pouvez également effectuer des requêtes plus complexes, comme des agrégations et des jointures, sur les données Parquet en utilisant la syntaxe SQL standard. Par exemple :
SELECT product_category, SUM(total_sales) AS category_sales FROM dfs.`/path/to/sales.parquet` GROUP BY product_category ORDER BY category_sales DESC;
Cette requête calcule les ventes totales pour chaque catégorie de produits à partir d’un fichier Parquet contenant des données de ventes. Elle regroupe les résultats par catégorie et les trie par ordre décroissant.
Fichiers de données auto-descriptifs
Une autre caractéristique clé de Parquet est qu’il s’agit d’un format de fichier auto-descriptif. Cela signifie que les fichiers Parquet contiennent à la fois les données et les métadonnées sur le schéma et les types de données.
La nature auto-descriptive des fichiers Parquet a plusieurs avantages :
- Évolution du schéma : Le schéma peut évoluer au fil du temps sans nécessiter de mise à jour de tous les fichiers.
- Inférence de schéma : Des outils comme Apache Drill peuvent déduire automatiquement le schéma.
- Imposer le schéma lors de l’écriture pour garantir la cohérence des données et améliorer l’intégrité des données.
Voici un exemple de ce à quoi pourraient ressembler les métadonnées dans un fichier 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
Comme vous pouvez le constater, les métadonnées comprennent des détails tels que la version Parquet, le schéma Avro et la structure des colonnes et types de données. Lorsque Drill lit ce fichier, il peut utiliser le schéma intégré pour rendre automatiquement les données interrogeables via SQL sans configuration supplémentaire.
Traitement de fichier optimisé
Les fichiers Parquet sont optimisés pour un traitement rapide de plusieurs façons.
- Taille de colonnes : La requête ne lit que les colonnes nécessaires depuis le disque.
- Filtrage des prédicats au niveau des données pour des analyses efficaces.
- Codage et compression : Un codage et une compression intelligents améliorent le stockage et les performances.
Examinons un exemple pour illustrer comment fonctionne la taille de colonnes. Considérons un fichier Parquet représentant une table avec les colonnes A, B et C.
Si nous lançons une requête de ce type :
SELECT A FROM table;
Vous n’avez besoin de lire que les données de la colonne ‘A’ depuis le fichier, pas la table entière. Cela peut réduire considérablement les opérations d’entrées/sorties disque et améliorer les performances des requêtes, en particulier pour les tables larges avec de nombreuses colonnes.
Apache Drill, comme de nombreux autres moteurs de requêtes pour big data, prend en charge à la fois le découpage des partitions et la taille des colonnes lors du travail avec des structures de données et des formats de fichiers appropriés. La taille des colonnes dans Apache Drill fonctionne également par défaut lorsque vous interrogez des fichiers Parquet. Vous n’avez pas besoin de faire de configuration supplémentaire ou de spécifier des paramètres spéciaux pour profiter de cette optimisation.
Une autre optimisation, le filtrage des prédicats, minimise la quantité de données que le système doit traiter. Si une requête contient une clause WHERE, Parquet peut repousser le filtrage au niveau du fichier et ne retourner que les lignes correspondantes.
Par exemple, si nous avons une requête comme :
SELECT * FROM users WHERE age > 30;
Parquet peut ignorer des groupes de lignes entiers qui ne correspondent pas au filtre sur l’âge, évitant ainsi de lire et de désérialiser ces données.
Enfin, Parquet utilise des algorithmes de compression efficaces et des schémas de codage pour réduire la taille des fichiers tout en permettant des requêtes rapides. Parmi les codecs de compression couramment utilisés avec Parquet, on trouve Snappy, Gzip et LZO.
Travailler avec Parquet dans Apache Drill
Pour commencer à utiliser Parquet et Drill, vous devez d’abord installer Drill, que vous pouvez télécharger sur le site web d’Apache Drill. Drill prend en charge la lecture de fichiers Parquet depuis diverses sources, dont :
- Système de fichiers local
- Système de fichiers distribué Hadoop (HDFS)
- Amazon S3
- Azure Blob Storage
- Google Cloud Storage
Une fois Drill installé et configuré, vous pouvez utiliser le shell Drill ou l’interface web Drill pour exécuter des requêtes sur vos données Parquet.
Voici un exemple de création d’une table à partir d’un fichier Parquet en utilisant le shell Drill :
0: jdbc:drill:zk=local> USE dfs.tmp; CREATE TABLE users AS SELECT * FROM dfs.`/path/to/users.parquet`;
Cela crée une nouvelle table Drill appelée “users” à partir d’un fichier Parquet stocké sur le système de fichiers. Vous pouvez maintenant exécuter des requêtes sur cette table comme n’importe quelle autre table SQL.
Par exemple :
SELECT name, age FROM users WHERE age > 30 ORDER BY age DESC;
Si vous utilisez des fichiers Parquet partitionnés par date ou clé, Drill peut éviter de lire des données inutiles en utilisant le découpage des partitions. Le Parquet partitionné est une technique courante pour structurer les données d’une manière optimale pour les performances des requêtes.
Conclusion
Cet article explique le format de fichier Apache Drill Parquet et comment il aide à exécuter du SQL efficacement sur Hadoop. Nous avons exploré les avantages du stockage en colonnes de Parquet, des fichiers de données auto-descriptifs et des optimisations de requêtes.
En utilisant Apache Drill avec Parquet, vous pouvez débloquer la puissance des analyses interactives SQL sur des ensembles de données massifs. Drill fonctionne facilement avec SQL standard et JDBC/ODBC, ce qui permet de se connecter simplement avec des outils de BI et de visualisation de données actuels.
Apache Drill et Parquet offrent une plateforme solide et flexible pour l’analyse des big data. Que vous analysiez des données, créiez des rapports ou utilisiez des tableaux de bord en temps réel, ces outils peuvent vous aider à accomplir vos tâches. Pour en savoir plus, consultez la documentation officielle d’Apache Drill.
DataSunrise prend en charge la découverte de données pour les fichiers Parquet. Cette fonctionnalité aide les organisations à se conformer aux réglementations sur les données et à améliorer la sécurité des données. La découverte de données vous permet de scanner vos fichiers Parquet pour identifier les données sensibles et les informations personnellement identifiables (PII). Avec ces informations, vous pouvez prendre les mesures appropriées pour protéger et gérer vos données.
DataSunrise propose une suite complète d’outils de sécurité des données, y compris la découverte de données, le masquage de données, la prévention des pertes de données et la surveillance des activités de base de données. Ces outils s’intègrent parfaitement avec diverses bases de données, entrepôts de données et plateformes de big data, offrant une solution flexible et robuste pour vos besoins en matière de sécurité des données.
Veuillez demander une démonstration en ligne pour voir par vous-même comment nos outils peuvent vous aider à améliorer la sécurité des données, à respecter les réglementations et à protéger vos informations sensibles.