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 d’AWS GovCloud (US, côte est) et d’AWS GovCloud (US, côte ouest)
-
AWS Glue prend en charge le contrôle précis des accès 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 avec 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 exige un pilote système, des exécuteurs système, un pilote utilisateur et éventuellement des exécuteurs utilisateur (obligatoire lorsque votre tâche comporte des UDF ou
spark.createDataFrame). -
AWS Glue avec 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 le contrôle précis des accès pour les tâches AWS Glue, transmettez le paramètre de tâche
--enable-lakeformation-fine-grained-access. -
Vous pouvez configurer vos tâches AWS Glue pour qu’elles fonctionnent avec la hiérarchie à catalogues multiples AWS Glue. Pour plus d’informations sur les paramètres de configuration à utiliser avec l’API
StartJobRunAWS Glue, consultez Working with AWS Glue multi-catalog hierarchy 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 :
-
UDT, HiveUDF 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
-
ANALYZE TABLEcommande
-
-
Pour appliquer les contrôles d’accès, les opérations
EXPLAIN PLANet DDL telles queDESCRIBE TABLEn’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 du pilote système. Pour le dépannage, contactez le support AWS.
-
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
history,metadata_log_entries,snapshots,files,manifestsetrefs. AWS Glue masque les colonnes susceptibles de contenir des données sensibles, telles quepartitions,pathetsummaries. 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_tableetmigratene sont prises en charge pour aucune table. -
Nous vous recommandons d’utiliser Iceberg DataFrameWriterV2 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.