Considérations et restrictions - Amazon Athena

Considérations et restrictions

Tenez compte des points suivants lorsque vous utilisez des fonctions définies par l’utilisateur (UDF) dans Athena.

  • Fonctions Athena intégrées – Les fonctions intégrées dans Athena sont conçues pour être très performantes. Nous vous recommandons d'utiliser des fonctions intégrées plutôt que les UDF lorsque cela est possible. Pour de plus amples informations sur les fonctions intégrées, veuillez consulter Fonctions dans Amazon Athena.

  • UDF scalaires uniquement – Athena ne prend en charge que les UDF scalaires, qui traitent une ligne à la fois et renvoient une valeur de colonne unique. Athena transmet un lot de lignes, potentiellement en parallèle, à l'UDF chaque fois qu'il invoque Lambda. Lors de la conception des UDF et des requêtes, tenez compte de l'impact potentiel de ce traitement sur le trafic réseau.

  • Les fonctions du gestionnaire de UDF utilisent un format abrégé — Utilisez un format abrégé (pas le format complet), pour vos fonctions UDF (par exemple, package.Class et non de package.Class::method).

  • Les méthodes UDF doivent être en minuscules — Les méthodes UDF doivent être en minuscules ; la casse chameau n'est pas autorisée.

  • Les méthodes UDF nécessitent des paramètres – Les méthodes UDF doivent avoir au moins un paramètre d'entrée. Toute tentative d'invocation d'une méthode UDF définie sans paramètres d'entrée entraîne une exception d'exécution. Les UDF sont destinés à exécuter des fonctions sur des enregistrements de données, mais un UDF sans arguments n'accepte aucune donnée, générant une exception.

  • Prise en charge des environnements d’exécution Java – Actuellement, les UDF Athena prennent en charge les environnements d’exécution Java 8, Java 11 et Java 17 pour Lambda. Pour plus d'informations, consultez la rubrique Création de fonctions Lambda avec Java du Guide du développeur AWS Lambda.

    Note

    Pour Java 17, vous devez définir la valeur de la variable d’environnement JAVA_TOOL_OPTIONS sur --add-opens=java.base/java.nio=ALL-UNNAMED dans votre Lambda.

  • Autorisations IAM – Pour exécuter et créer des instructions de requête UDF dans Athena, le principal IAM qui exécute la requête doit être autorisé à effectuer des actions en plus des fonctions Athena. Pour de plus amples informations, consultez Autorisation d’accès aux UDF Athena – Exemples de politiques.

  • Quotas Lambda – Les quotas Lambda s'appliquent aux UDF. Pour plus d’informations, consultez Quotas Lambda dans le Guide du développeur AWS Lambda.

  • Filtrage au niveau des lignes – Le filtrage au niveau des lignes de Lake Formation n'est pas pris en charge pour les UDF.

  • Views (Vues) : vous ne pouvez pas utiliser des vues avec des UDF.

  • Problèmes connus – Pour la liste la plus récente des problèmes connus, consultez la rubrique Limitations et problèmes dans la section awslabs/aws-athena-query-federation de GitHub.