Standardisation des données
Les données arrivent dans des comptes Data Lake dans différents formats. Ces formats incluent des formats lisibles par des personnes, tels que JSON, .CSV ou des fichiers XML, et des formats binaires compressés, tels que .tar ou .gz. L’arrivée de données inclut également de nombreuses tailles, de quelques fichiers modifiés à une exportation d’une table SQL entière. Les données peuvent également provenir d’un grand nombre de petits fichiers qui sont quelques Ko, tels que des événements en temps réel à partir d’une solution IoT.
Bien que Azure Data Lake Storage Gen2 prend en charge le stockage pour tous les types de données sans restrictions, vous devez soigneusement prendre en compte vos formats de données pour garantir l’efficacité du pipeline de traitement et optimiser les coûts.
De nombreuses organisations normalisent désormais leur format d’ingestion et séparent le calcul du stockage. Pour cette raison, le format Delta Lake est devenu la norme préférée pour l’ingestion des données jusqu’à la couche d’enrichissement. À partir de la couche d’enrichissement, votre équipe d’application de données peut servir des données dans un format qui reflète leur cas d’usage.
Remarque
Utilisez Delta Lake pour prendre en charge les cas d’usage de traitement par lots et de diffusion en continu pour l’ingestion initiale des données jusqu’à la couche d’enrichissement.
Cet article fournit une vue d’ensemble de Delta Lake, de ses performances et de la façon dont il vous aide à prendre en charge la conformité et comment normaliser vos données à mesure qu’elles passent de la source à la couche d’enrichissement.
Delta Lake
Delta Lake est une couche de stockage open source qui apporte des transactions ACID (atomicité, cohérence, isolation et durabilité) aux charges de travail Big Data et à Apache Spark. Les deux Azure Synapse Analytics et Azure Databricks sont compatibles avec Linux Foundation Delta Lake.
Fonctionnalités clés de Delta Lake
Fonctionnalité | Description |
---|---|
Transactions ACID | Les lacs de données sont généralement remplis de plusieurs processus et pipelines, dont certains écrivent des données en même temps que les lectures. Les ingénieurs de données devaient passer par un processus manuel sujet aux erreurs pour garantir l’intégrité des données avant l’utilisation de Delta Lake et des transactions. Delta Lake apporte des transactions ACID familières aux lacs de données. Il assure la sérialisation, le niveau d’isolation le plus élevé. Pour plus d’informations, consultez Plongée dans Delta Lake : décompression du journal des transactions. |
Gestion des métadonnées évolutive | Dans le Big Data, même les métadonnées peuvent être du « Big Data ». Delta Lake traite les métadonnées de la même façon que d’autres données. Il utilise la puissance de traitement distribuée de Spark pour gérer toutes les métadonnées. De ce fait, Delta Lake peut donc gérer facilement des tables à l’échelle de plusieurs pétaoctets avec des milliards de partitions et fichiers en toute simplicité. |
Temps de voyage (contrôle de version des données) | La possibilité d’annuler une modification ou de revenir à une version précédente est une fonctionnalité principale des transactions. Delta Lake fournit des captures instantanées de données vous permettant de revenir à des versions antérieures de données à des fins d’audit, de restauration ou de reproduction d’expériences. Pour plus d’informations, consultez Présentation d’un voyage dans le temps Delta Lake pour les lacs de données à grande échelle. |
Format ouvert | Apache Parquet, le format de base de Delta Lake, vous permet d'appliquer des schémas de compression et d'encodage efficaces. |
Source et récepteur de lot unifié et de diffusion en continu | Une table dans Delta Lake est à la fois une table de lot et une source et un récepteur de diffusion. Une diffusion d’ingestion de données en continu, le renvoi d’historique par lot et les requêtes interactives fonctionnent sans nécessiter de configuration. |
Application du schéma | L’application du schéma vous permet de vous assurer que vous disposez de types de données corrects et de colonnes requises, ce qui empêche l’incohérence des données contre les données incorrectes. Pour plus d’informations, consultez Plongée dans Delta Lake :application et évolution du schéma |
Évolution du schéma | Delta Lake vous permet d'apporter des modifications automatiquement appliquées à un schéma de table, sans avoir besoin d'écrire un DDL de migration. Pour plus d’informations, consultez Plongée dans Delta Lake :application et évolution du schéma |
Historique des audits | Le journal des transactions de Delta Lake enregistre les détails de chaque modification apportée à vos données. Ces enregistrements fournissent une piste d’audit complète de toutes les modifications. |
Mises à jour et suppressions | Delta Lake prend en charge les API Scala, Java, Python et SQL pour un vaste éventail de fonctionnalités. La prise en charge des opérations de fusion, de mise à jour et de suppression vous aide à répondre aux exigences de conformité. Pour plus d’informations, consultez les articles Annonce de la mise en production de Delta Lake 0.6.1 , Annonce de la mise en production de Delta Lake 0.7 et Upserts et suppressions simples et fiables sur des tables Delta Lake à l’aide d’API Python (qui contiennent des extraits de code pour les commandes DML de fusion, de mise à jour et de suppression). |
100 % compatible avec l’API Apache Spark | Vos développeurs peuvent utiliser Delta Lake avec leurs pipelines de données existants pratiquement sans aucune modification, car il est entièrement compatible avec les implémentations Spark existantes. |
Pour plus d’informations, consultez Projet Delta Lake.
Pour obtenir une documentation complète, consultez la page Documentation de Delta Lake
Performances
L’utilisation d’un grand nombre de petits fichiers entraîne souvent des performances non optimales et des coûts plus élevés à partir d’opérations de lecture/liste accrues. Azure Data Lake Storage Gen2 est optimisé pour les fichiers plus volumineux qui permettent à vos travaux d’analyse de s’exécuter plus rapidement et avec un coût moindre.
Delta Lake inclut de nombreuses fonctionnalités qui peuvent vous aider à optimiser les performances avec la gestion des fichiers.
Voici quelques exemples :
- Le journal des transactions réduit les opérations LIST coûteuses.
- L’ordre Z (clustering multidimensionnel) active le pushdown de prédicat optimisé pour vos filtres de requête.
- Les optimisations de mise en cache et de requête natives réduisent la quantité d’analyse de stockage dont vous avez besoin. Pour plus d’informations, consultez Optimiser les performances avec la mise en cache.
- OPTIMIZE fusionne les petits fichiers en fichiers plus volumineux.
Faites en sorte que ces optimisations fassent partie de votre processus de chargement des données pour maintenir l’actualisation et les performances des données.
Partitionnement du lac de données
Le partitionnement des données implique l’organisation des données dans votre magasin de données afin de pouvoir gérer les données à grande échelle et contrôler l’accès aux données. Le partitionnement peut améliorer l’extensibilité, réduire la contention et optimiser les performances.
Lors du partitionnement de votre lac de données, vérifiez votre configuration :
- Sécurité non compromise
- Elle a une isolation claire et s’aligne avec votre modèle d’autorisation des données
- Correspond bien à votre processus d’ingestion de données
- Chemin bien défini pour un accès optimal aux données
- Prise en charge des tâches de gestion et de maintenance
Pratiques générales
Les pratiques générales pour la conception du partitionnement de données sont :
- Concentrez-vous tôt sur vos implications en matière de sécurité et concevez vos partitions de données en même temps que les autorisations.
- Vous pouvez autoriser la redondance des données en échange de la sécurité. Définissez une convention d’affectation de noms et respectez-la.
- Vous pouvez imbriquer plusieurs dossiers, mais toujours les maintenir cohérents.
- Incluez un élément de temps dans vos structures de dossiers et noms de fichiers.
- Ne commencez pas votre structure de dossiers par des partitions de date. Il est préférable de conserver les dates au niveau inférieur des dossiers.
- Ne combinez pas des formats de fichier mixtes ni des produits de données différents dans une même structure de dossiers.
Conseil
Vos structures de dossiers doivent suivre des stratégies de partitionnement permettant d’optimiser les modèles d’accès et les tailles de fichier appropriées. Dans les zones organisées, planifiez la structure pour une récupération optimale. Faites attention si vous choisissez une clé de partition à cardinalité élevée : cela se traduit par un surpartitionnement, et en retour par des tailles de fichiers non optimales.
Pour plus d’informations sur les zones de lac de données, consultez Zones et conteneurs Data Lake
Prise en charge de la conformité
Delta Lake ajoute une couche transactionnelle pour fournir une gestion structurée des données au-dessus de votre lac de données. Cet ajout peut simplifier et accélérer considérablement votre capacité à localiser et supprimer des informations personnelles (également appelées « données personnelles ») à la demande du consommateur. La couche transactionnelle prend en charge les opérations telles que DELETE, UPDATE et MERGE. Pour plus d’informations, consultez Meilleures pratiques : conformité RGPD à l’aide de Delta Lake.
Récapitulatif
Appliquez les normalisations des données répertoriées dans cet article à votre plateforme. Commencez par le format Delta Lake, puis commencez à ajouter des processus pour l’optimisation et la conformité. Vous pouvez décider de créer un service qui exécute certaines de vos routes d’optimisation selon une planification, ou de créer un service de conformité qui supprime les informations personnelles.