ReInvent 2021 : AWS renforce le contrôle des données dans Lake Formation
La semaine dernière, le géant du cloud a profité de son salon ReInvent pour exposer de nouvelles fonctionnalités consacrées à Lake Formation. Pour AWS, la gouvernance des lacs de données passe par l’obfuscation et une meilleure gestion des transformations de données.
Lake Formation, proposé pour la première fois en 2018 et accessible en disponibilité générale depuis 2019, est un système qui fournit aux entreprises des outils et des capacités pour structurer et gérer les déploiements de data lake à l’aide du stockage objet Amazon S3.
Adam Selipsky, le PDG d’AWS nommé en mai 2021, s’est évertué à mettre en avant la direction prise par AWS afin de permettre aux utilisateurs d’administrer et de sécuriser plus simplement les données au sein de leurs architectures.
Le rôle d’AWS Lake Formation et des lacs de données cloud
Doug Henschen, analyste chez Constellation Research, considère que les data lakes jouent un rôle important pour les architectures de données des organisations.
« Les lacs de données aident à éliminer les silos en fournissant une source unique de vérité qui pourrait être utilisée par plusieurs systèmes », affirme Doug Henschen. Les entreprises entendent obtenir ce que promettait l’adoption d’Hadoop sur site, mais en réalité elles se retrouvent également à administrer la variété des sources et des données sur le cloud. Car, là où l’image d’Épinal laissait entrevoir un seul et grand data lake, les organisations multiplient les instances de lacs de données et de data warehouse par région et par entité pour des raisons de performances ou réglementaires, entre autres.
L’analyste affirme que si des applications isolées modifient les données, les organisations doivent prendre en charge les mises à jour de nombreux systèmes qui exploitent les lacs comme une « source unique de vérité » ou un enregistrement de données unifié et fiable.
Masquer les données sensibles à l’échelle de la cellule
Lors de la conférence principale de ReInvent, Adam Selipsky a déclaré qu’AWS Lake Formation a été créé pour faciliter le déploiement rapide et la gouvernance d’un data lake.
« AWS Lake Formation vous aide à collecter et à cataloguer les données des bases de données et du stockage objet, à les déplacer dans votre data lake Amazon S3, à les nettoyer et à les classer à l’aide d’algorithmes de machine learning, puis à sécuriser l’accès aux informations sensibles », avance-t-il.
Lake Formation peut contenir plusieurs data lakes, un ensemble de données persistantes entreposées dans S3 et administrées depuis le même data catalog qu’AWS Glue qui est également exploité pour les opérations ETL.
Bien qu’AWS Lake Formation ait fourni un contrôle d’accès depuis son lancement en 2019, Adam Selipsky note que les utilisateurs d’AWS ont demandé un moyen plus ciblé et direct de régir l’accès aux lacs de données. À cette fin, le PDG a dévoilé de nouvelles capacités de sécurité.
Le dirigeant affirme que les usagers peuvent désormais appliquer des contrôles au niveau des lignes et cellules des tables. AWS Lake Formation « filtre automatiquement » les données et ne révèle aux utilisateurs que les données autorisées par la politique. Ces politiques sont définies via des filtres appliquées par appel d’API à des colonnes, des lignes et des cellules. Ces filtres sont des fonctions spécifiques écrites dans le langage de requêtes PartiQL, développé à l’origine pour DynamoDB.
S’il suffit de nommer la colonne ou la ligne que l’on souhaite masquer avec ces fonctions PartiQL, il faut ajouter une expression pour inclure les paramètres du IAM afin d’identifier les usagers. Ainsi, avec Amazon Athena il est possible de ne requêter que les tables présentes dans le data catalog bénéficiant du niveau de permission défini dans Lake Formation. Le fournisseur s’aligne ici sur MongoDB (dont la base de données est de plus en plus utilisée en fondation d’un lac de données) qui propose déjà cette option. Snowflake travaille aussi à implémenter cette fonctionnalité dans son Data Cloud. Avec Synapse Analytics, Azure se concentre à la fois sur l’obfuscation des données au niveau des colonnes et sur leur chiffrement.
Adam Selipsky a également présenté les Governed Tables de Lake Formation. Cette dénomination correspond à un nouveau type de table pour les data lakes, selon Adam Selipsky. Ces tables prennent en charge les transactions ACID (atomicité, cohérence, isolation et durabilité), qui sont conçues pour prévenir les conflits de données et garantir leur cohérence.
Adam SelipskyPDG, AWS
« Lorsque des données sont ajoutées ou modifiées dans S3, AWS Lake Formation empêche automatiquement les conflits et les erreurs pour conférer à tous les utilisateurs une vue cohérente des données », assure Adam Selipsky. « Ainsi, maintenant, plusieurs sources et pipelines de données peuvent continuer à actualiser les données en temps réel pendant que les collaborateurs les interrogent au lieu de devoir attendre la fin des mises à jour par lots (batch). »
Du Change Data Capture dans Lake Formation
Plus précisément, la gestion des filtres et des Governed Tables se fait depuis le data catalog de Lake Formation. Celui-ci administre deux types de tables de métadonnées : les tables gouvernées et les tables non gouvernées. Ces deux tables s’inspirent de la même structure de partitions de données : celle d’Apache Hive. À la différence que les Governed Tables modélisent des transactions ACID, c’est-à-dire les métadonnées représentant les changements de données liées à des objets S3.
Dans le détail, il existe deux types de transactions. Le premier type est considéré comme « une transaction basée sur les tables ». Elle donne à la possibilité à un moteur ETL d’effectuer les opérations Insert ou Delete sur des millions de lignes (des téraoctets des données) en mode batch avant de les écrire dans des partitions de tables S3. Selon Roy Hasson, Principal Product Manager Lake Formation chez AWS, cela peut servir dans le cadre de grosses mises à jour quotidiennes de données, ou d’injection de fichiers en provenance de partenaires. En cas d’erreur ou d’échec de la transaction, les transformations ne sont pas appliquées. Si l’opération est un succès, les usagers auront accès aux nouvelles données.
Le deuxième type de transaction est basé sur les lignes. L’on peut ici réaliser des opérations Insert, Update et Delete sur chaque ligne dans une table S3. Cette deuxième option offre un moyen d’exécuter des opérations de change data capture (CDC). S’il était déjà possible d’effectuer ce genre d’opération manuellement, les tables gouvernées doivent automatiser la gestion des transactions. Pour assurer la cohérence des opérations et éviter l’écrasement des données, les ingénieurs d’AWS ont décidé de ne pas placer l’administration des transactions au niveau des fichiers S3 comme le propose Databricks avec Delta Lake, mais de le faire via API et de stocker les tables gouvernées au niveau du service Lake Formation. Ces deux types de transactions peuvent être effectués sur des données et des métadonnées.
Évidemment, les métadonnées de transactions incluent un tampon chronologique. C’est un élément essentiel pour garantir l’insertion ou l’effacement des données et métadonnées. AWS s’appuie sur ce prérequis pour propulser l’API Time Travel liée au Governed Tables. En clair, il est possible de requêter depuis un service comme Athena, Glue ou un Apache Spark managé (EMR), les versions de données et ainsi rejouer des opérations passées.
Enfin, les tables gouvernées offrent une option de compactage automatique des données et métadonnées stockées dans S3. Les services de streaming de données tout comme les nouvelles fonctionnalités de CDC de Lake Formation impliquent la multiplication du nombre de fichiers par partition. Or cela influe sur les performances de moteur de requêtes, qui doivent parser davantage de fichiers avant de retourner un résultat. Le compactage automatique aide ainsi à analyser les partitions, détecter les nouvelles entrées, mesurer le nombre de fichiers et leur volume. Une fois un seuil atteint, la fonction enclenche un job afin de fusionner les fichiers d’un même dossier et d’effacer les précédentes versions.