Considérations et restrictions - AWS Glue

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.

Considérations et restrictions

Tenez compte des considérations et des restrictions suivantes lorsque vous utilisez Lake Formation avec AWS Glue.

AWS Glue with Lake Formation est disponible dans toutes les régions prises en charge, à l'exception de AWS GovCloud (USA Est) et AWS GovCloud (USA Ouest).

  • AWS Glue permet un contrôle d'accès précis via Lake Formation uniquement pour les tables Apache Hive et Apache Iceberg. Les formats Apache Hive incluent Parquet, ORC et CSV.

  • Vous ne pouvez utiliser Lake Formation qu’avec des tâches Spark.

  • AWS Glue with Lake Formation ne prend en charge qu'une seule session Spark tout au long d'une tâche.

  • Lorsque Lake Formation est activé,AWS Glue nécessite un plus grand nombre de travailleurs car il nécessite un pilote système, des exécuteurs système, un pilote utilisateur et éventuellement des exécuteurs utilisateur (requis lorsque votre tâche possède UDFs ouspark.createDataFrame).

  • AWS Glue with Lake Formation ne prend en charge que les requêtes de table entre comptes partagées via des liens de ressources. Le lien de ressource doit être nommé de la même manière que la ressource du compte source.

  • Pour activer un contrôle d'accès précis pour les tâches AWS Glue, transmettez le paramètre de la --enable-lakeformation-fine-grained-access tâche.

  • Vous pouvez configurer vos jobs AWS Glue pour qu'ils fonctionnent avec la hiérarchie multi-catalogues AWS Glue. Pour plus d'informations sur les paramètres de configuration à utiliser avec l'StartJobRunAPI AWS Glue, voir Working with AWS Glue multi-catalog Hire on EMR Serverless.

  • Les éléments suivants ne sont pas pris en charge :

    • Jeux de données distribués résilients (RDD)

    • Spark Streaming

    • Écriture avec les autorisations accordées par Lake Formation

    • Contrôle d’accès pour les colonnes imbriquées

  • AWS Glue bloque les fonctionnalités susceptibles de compromettre l'isolation complète du pilote système, notamment les suivantes :

    • UDTs, Hive UDFs et toute fonction définie par l'utilisateur impliquant des classes personnalisées

    • Sources de données personnalisées

    • Fourniture de fichiers JAR supplémentaires pour l’extension, le connecteur ou le métastore Spark

    • Commande ANALYZE TABLE

  • Pour appliquer les contrôles d’accès, les opérations EXPLAIN PLAN et DDL telles que DESCRIBE TABLE n’exposent pas les informations restreintes.

  • AWS Glue restreint l'accès aux journaux Spark du pilote système sur les applications compatibles avec Lake Formation. Étant donné que le pilote système s’exécute avec plus d’accès, les événements et les journaux générés par le pilote système peuvent inclure des informations sensibles. Pour empêcher les utilisateurs ou le code non autorisés d'accéder à ces données sensibles, AWS Glue a désactivé l'accès aux journaux des pilotes du système. Pour le dépannage, contactez AWS le support.

  • Si vous avez enregistré l’emplacement d’une table avec Lake Formation, le chemin d’accès aux données passe par les informations d’identification stockées dans Lake Formation, indépendamment de l’autorisation IAM pour le rôle d’exécution de la tâche AWS Glue. Si vous configurez mal le rôle enregistré avec l’emplacement de la table, les tâches soumises qui utilisent le rôle avec l’autorisation S3 IAM sur l’emplacement de la table échoueront.

  • L’écriture dans une table Lake Formation utilise l’autorisation IAM plutôt que les autorisations accordées par Lake Formation. Si votre rôle d’exécution de tâches dispose des autorisations S3 nécessaires, vous pouvez l’utiliser pour exécuter des opérations d’écriture.

Voici les restrictions et les considérations à prendre en compte lors de l’utilisation d’Apache Iceberg :

  • Vous ne pouvez utiliser Apache Iceberg qu’avec un catalogue de sessions et non avec des catalogues nommés arbitrairement.

  • Les tables Iceberg enregistrées dans Lake Formation ne prennent en charge que les tables de métadonnées historymetadata_log_entries,snapshots,, filesmanifests, etrefs. AWS Glue masque les colonnes susceptibles de contenir des données sensibles, telles que partitionspath, etsummaries. Cette restriction ne s’applique pas aux tables Iceberg qui ne sont pas enregistrées dans Lake Formation.

  • Les tables que vous n’enregistrez pas dans Lake Formation prennent en charge toutes les procédures stockées par Iceberg. Les procédures register_table et migrate ne sont prises en charge pour aucune table.

  • Nous vous recommandons d'utiliser Iceberg DataFrameWriter V2 au lieu de V1.

Exemple d’allocation de travailleurs

Pour une tâche configurée avec les paramètres suivants :

--enable-lakeformation-fine-grained-access=true --number-of-workers=20

L’allocation de travailleurs serait la suivante :

  • Un travailleur pour le pilote utilisateur.

  • Un travailleur pour le pilote système.

  • 10 % des 18 travailleurs restants (soit 2 travailleurs) réservés aux exécuteurs utilisateur.

  • Jusqu’à 16 travailleurs alloués aux exécuteurs système.

Lorsque autoscaling est activé, les exécuteurs utilisateur peuvent utiliser n’importe quelle capacité non allouée depuis les exécuteurs système, si nécessaire.

Contrôle de l’allocation d’exécuteurs utilisateurs

Vous pouvez ajuster le pourcentage de réservation pour les exécuteurs utilisateur à l’aide de la configuration suivante :

--conf spark.dynamicAllocation.maxExecutorsRatio=<value between 0 and 1>

Cette configuration permet de contrôler avec précision le nombre d’exécuteurs utilisateur réservés par rapport à la capacité totale disponible.