Lacs de données modernes - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Lacs de données modernes

Cas d'utilisation avancés dans les lacs de données modernes

L'évolution du stockage des données est passée des bases de données aux entrepôts de données et aux lacs de données, où chaque technologie répond à des exigences commerciales et de données uniques. Les bases de données traditionnelles excellaient dans la gestion des données structurées et des charges de travail transactionnelles, mais elles se heurtaient à des problèmes de performance à mesure que les volumes de données augmentaient. Les entrepôts de données sont apparus pour résoudre les problèmes de performance et d'évolutivité, mais comme les bases de données, ils reposaient sur des formats propriétaires au sein de systèmes intégrés verticalement.

Les lacs de données constituent l'une des meilleures options pour stocker des données en termes de coût, d'évolutivité et de flexibilité. Vous pouvez utiliser un lac de données pour conserver de gros volumes de données structurées et non structurées à moindre coût, et utiliser ces données pour différents types de charges de travail analytiques, qu'il s'agisse de rapports de business intelligence, de traitement de mégadonnées, d'analyses en temps réel, d'apprentissage automatique ou d'intelligence artificielle générative (IA), afin de prendre de meilleures décisions.

Malgré ces avantages, les lacs de données n'ont pas été initialement conçus avec des fonctionnalités similaires à celles des bases de données. Un lac de données ne prend pas en charge la sémantique de traitement ACID (atomicité, cohérence, isolation et durabilité), dont vous pourriez avoir besoin pour optimiser et gérer efficacement vos données à grande échelle auprès de centaines ou de milliers d'utilisateurs en utilisant de nombreuses technologies différentes. Les lacs de données ne fournissent pas de support natif pour les fonctionnalités suivantes :

  • Effectuer des mises à jour et des suppressions efficaces au niveau des enregistrements à mesure que les données changent dans votre entreprise

  • Gestion des performances des requêtes lorsque les tables se transforment en millions de fichiers et en centaines de milliers de partitions

  • Garantir la cohérence des données entre plusieurs rédacteurs et lecteurs simultanés

  • Empêcher la corruption des données lorsque les opérations d'écriture échouent en cours d'opération

  • Évolution des schémas de table au fil du temps sans réécriture (partielle) des ensembles de données

Ces défis sont devenus particulièrement courants dans des cas d'utilisation tels que la gestion de la capture des données modifiées (CDC) ou les cas d'utilisation relatifs à la confidentialité, à la suppression de données et à l'ingestion de données en streaming, ce qui peut entraîner des tables sous-optimales.

Les lacs de données qui utilisent les tables au format Hive traditionnelles ne prennent en charge les opérations d'écriture que pour des fichiers entiers. Cela rend les mises à jour et les suppressions difficiles à mettre en œuvre, longues et coûteuses. En outre, les contrôles de simultanéité et les garanties proposés dans les systèmes conformes à l'ACID sont nécessaires pour garantir l'intégrité et la cohérence des données.

Ces défis placent les utilisateurs face à un dilemme : choisir entre une plate-forme entièrement intégrée mais propriétaire, ou opter pour un lac de données indépendant du fournisseur mais gourmand en ressources, construit par eux-mêmes et nécessitant une maintenance et une migration constantes pour tirer parti de sa valeur potentielle.

Pour aider à relever ces défis, Iceberg fournit des fonctionnalités supplémentaires de type base de données qui simplifient l'optimisation et les frais de gestion des lacs de données, tout en prenant en charge le stockage sur des systèmes rentables tels qu'Amazon S3.

Présentation d'Apache Iceberg

Apache Iceberg est un format de table open source qui fournit des fonctionnalités dans les tables de lacs de données qui n'étaient auparavant disponibles que dans les bases de données ou les entrepôts de données. Il est conçu dans un souci d'évolutivité et de performance, et convient parfaitement à la gestion de tables de plus de centaines de gigaoctets. Certaines des principales caractéristiques des tables Iceberg sont les suivantes :

  • Supprimez, mettez à jour et fusionnez.Iceberg prend en charge les commandes SQL standard pour l'entreposage de données à utiliser avec les tables de lacs de données.

  • Planification rapide des scans et filtrage avancé. Iceberg stocke des métadonnées telles que les statistiques au niveau des partitions et des colonnes qui peuvent être utilisées par les moteurs pour accélérer la planification et l'exécution des requêtes.

  • Évolution complète du schéma. Iceberg permet d'ajouter, de supprimer, de mettre à jour ou de renommer des colonnes sans effets secondaires.

  • Évolution de la partition. Vous pouvez mettre à jour la disposition de partition d'une table à mesure que le volume de données ou les modèles de requête changent. Iceberg prend en charge la modification des colonnes sur lesquelles une table est partitionnée, l'ajout de colonnes ou la suppression de colonnes dans des partitions composites.

  • Partitionnement masqué.Cette fonctionnalité empêche la lecture automatique de partitions inutiles. Les utilisateurs n'ont donc plus besoin de comprendre les détails du partitionnement de la table ou d'ajouter des filtres supplémentaires à leurs requêtes.

  • Annulation de la version. Les utilisateurs peuvent rapidement corriger les problèmes en revenant à un état antérieur à la transaction.

  • Voyage dans le temps Les utilisateurs peuvent interroger une version précédente spécifique d'une table.

  • Isolation sérialisable. Les modifications apportées aux tables sont atomiques, de sorte que les lecteurs ne voient jamais de modifications partielles ou non validées.

  • Rédacteurs concurrents. Iceberg utilise une simultanéité optimiste pour permettre à plusieurs transactions de réussir. En cas de conflit, l'un des rédacteurs doit réessayer la transaction.

  • Formats de fichiers ouverts. Iceberg prend en charge plusieurs formats de fichiers open source, notamment Apache Parquet, Apache Avro et Apache ORC.

En résumé, les lacs de données qui utilisent le format Iceberg bénéficient de la cohérence transactionnelle, de la rapidité, de l'échelle et de l'évolution des schémas. Pour plus d'informations sur ces fonctionnalités et sur d'autres fonctionnalités d'Iceberg, consultez la documentation d'Apache Iceberg.

AWS support pour Apache Iceberg

Apache Iceberg est pris en charge par Services AWSAmazon EMR, Amazon Athena, Amazon AWS Gluehttps://aws.amazon.com/glue/Redshift et Amazon. SageMaker Le schéma suivant illustre l'architecture de référence simplifiée d'un lac de données basé sur Iceberg.

Architecture de lac de données transactionnel pour Apache Iceberg on. AWS

Les éléments suivants Services AWS fournissent des intégrations natives d'Iceberg. D'autres Services AWS peuvent interagir avec Iceberg, soit indirectement, soit en empaquetant les bibliothèques Iceberg.

  • Amazon S3 est le meilleur endroit pour créer des lacs de données en raison de sa durabilité, de sa disponibilité, de son évolutivité, de sa sécurité, de sa conformité et de ses fonctionnalités d'audit. Iceberg a été conçu et construit pour interagir de manière fluide avec Amazon S3 et prend en charge de nombreuses fonctionnalités d'Amazon S3 répertoriées dans la documentation d'Iceberg. En outre, Amazon S3 Tables fournit le premier magasin d'objets dans le cloud avec prise en charge intégrée d'Iceberg et rationalise le stockage des données tabulaires à grande échelle. Grâce à la prise en charge d'Iceberg par S3 Tables, vous pouvez facilement interroger vos données tabulaires à l'aide de moteurs de requêtes populaires AWS et tiers.

  • La prochaine génération SageMaker repose sur une architecture Lakehouse ouverte qui unifie l'accès aux données entre les lacs de données Amazon S3, les entrepôts de données Amazon Redshift et les sources de données tierces et fédérées. Ces fonctionnalités vous aident à créer de puissantes analyses et AI/ML applications à partir d'une seule copie des données. Le lakehouse est entièrement compatible avec Iceberg. Vous avez donc la possibilité d'accéder aux données sur place et de les interroger en utilisant l'API REST d'Iceberg.

  • Amazon EMR est une solution de mégadonnées destinée au traitement de données à l'échelle du pétaoctet, à l'analyse interactive et à l'apprentissage automatique en utilisant des frameworks open source tels qu'Apache Spark, Flink, Trino et Hive. Amazon EMR peut s'exécuter sur des clusters Amazon Elastic Compute Cloud (Amazon EC2) personnalisés, Amazon Elastic Kubernetes Service (Amazon EKS) AWS Outposts ou Amazon EMR Serverless.

  • Amazon Athena est un service d'analyse interactif sans serveur basé sur des frameworks open source. Il prend en charge les formats de table ouverte et de fichier et fournit un moyen simplifié et flexible d'analyser des pétaoctets de données là où elles se trouvent. Athena fournit un support natif pour les requêtes de lecture, de voyage dans le temps, d'écriture et DDL pour Iceberg et utilise le AWS Glue Data Catalog métastore for the Iceberg.

  • Amazon Redshift est un entrepôt de données cloud de plusieurs pétaoctets qui prend en charge les options de déploiement basées sur des clusters et sans serveur. Amazon Redshift Spectrum peut interroger les tables externes enregistrées auprès AWS Glue Data Catalog d'Amazon S3 et stockées sur celui-ci. Redshift Spectrum prend également en charge le format de stockage Iceberg.

  • AWS Glueest un service d'intégration de données sans serveur qui facilite la découverte, la préparation, le déplacement et l'intégration de données provenant de sources multiples à des fins d'analyse, d'apprentissage automatique (ML) et de développement d'applications. Il est totalement intégré à Iceberg. Plus précisément, vous pouvez effectuer des opérations de lecture et d'écriture sur des tables Iceberg à l'aide de AWS Glue tâches, gérer des tables via le AWS Glue Data Catalog(compatible avec le métastore Hive), découvrir et enregistrer des tables automatiquement à l'aide de robots d' AWS Glue exploration et évaluer la qualité des données dans les tables Iceberg grâce à la fonctionnalité Data Quality. AWS Glue AWS Glue Data Catalog Il prend également en charge la collecte de statistiques sur les colonnes, le calcul et la mise à jour du nombre de valeurs distinctes (NDVs) pour chaque colonne dans les tables Iceberg, ainsi que les optimisations automatiques des tables (compactage, conservation des instantanés, suppression de fichiers orphelins). AWS Glue prend également en charge les intégrations zéro ETL à partir d'une liste d' Services AWS applications tierces dans les tables Iceberg.

  • Amazon Data Firehose est un service entièrement géré qui fournit des données de streaming en temps réel à des destinations telles qu'Amazon S3, Amazon Redshift, Amazon Service, OpenSearch Amazon Serverless, OpenSearch Splunk, Apache Iceberg, ainsi qu'à tout point de terminaison HTTP ou HTTP personnalisé appartenant à des fournisseurs de services tiers pris en charge, notamment Datadog, Dynatrace LogicMonitor, MongoDB, New Relic, Coralogix et Elastic. Avec Firehose, vous n'avez pas besoin d'écrire d'applications ou de gérer des ressources. Vous configurez vos producteurs de données pour envoyer les données à Firehose, qui remet automatiquement les données à la destination que vous avez spécifiée. Vous pouvez également configurer Firehose pour transformer vos données avant de les remettre.

  • Amazon Managed Service pour Apache Flink est un service Amazon entièrement géré qui vous permet d'utiliser une application Apache Flink pour traiter des données de streaming. Il prend en charge la lecture et l'écriture dans les tables Iceberg, et permet le traitement et l'analyse des données en temps réel.

  • Amazon SageMaker AI prend en charge le stockage d'ensembles de fonctionnalités dans Amazon SageMaker AI Feature Store en utilisant le format Iceberg.

  • AWS Lake Formationfournit des autorisations de contrôle d'accès grossières et détaillées pour accéder aux données, notamment aux tables Iceberg consommées par Athena ou Amazon Redshift. Pour en savoir plus sur la prise en charge des autorisations pour les tables Iceberg, consultez la documentation de Lake Formation.

AWS propose une large gamme de services qui soutiennent Iceberg, mais la couverture de tous ces services dépasse le cadre de ce guide. Les sections suivantes traitent de Spark (streaming par lots et structuré) sur Amazon EMR ainsi AWS Glue que d'Athena SQL. La section suivante fournit un aperçu rapide du support d'Iceberg dans Athena SQL.