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.
Requête utilisant la syntaxe de requête UDF
La USING EXTERNAL FUNCTION
clause spécifie un UDF ou un multiple UDFs qui peut être référencé par une SELECT
instruction ultérieure dans la requête. Vous avez besoin du nom de la méthode de l'UDF et du nom de la fonction Lambda qui héberge l'UDF. À la place du nom de la fonction Lambda, vous pouvez utiliser l'ARN Lambda. Dans les scénarios entre comptes, l'ARN Lambda est requis.
Résumé
USING EXTERNAL FUNCTION UDF_name
(variable1
data_type
[, variable2
data_type
][,...])
RETURNS data_type
LAMBDA 'lambda_function_name_or_ARN
'
[, EXTERNAL FUNCTION UDF_name2
(variable1
data_type
[, variable2
data_type
][,...])
RETURNS data_type
LAMBDA 'lambda_function_name_or_ARN
'[,...]]
SELECT [...] UDF_name
(expression
) [, UDF_name2
(expression
)] [...]
Paramètres
- UTILISATION D'UNE FONCTION EXTERNE
UDF_name
(variable1
data_type
[,variable2
data_type
] [,...]) -
UDF_name
spécifie le nom de l'UDF, qui doit correspondre à une méthode Java au sein de la fonction Lambda référencée. Chacunevariable data_type
spécifie une variable nommée et le type de données correspondant que l'UDF accepte en entrée.data_type
Il doit s'agir de l'un des types de données Athena pris en charge répertoriés dans le tableau suivant et correspondre au type de données Java correspondant.Type de données Athena Type de données Java TIMESTAMP
java.time. LocalDateTime (UTC)
DATE
java.time. LocalDate (UTC)
TINYINT
java.lang.Byte
SMALLINT
java.lang.Short
REAL
java.lang.Float
DOUBLE
java.lang.Double
DECIMAL (voir la note
RETURNS
)java.math. BigDecimal
BIGINT
java.lang.Long
INTEGER
java.lang.Int
VARCHAR
java.lang.String
VARBINARY
byte[]
BOOLEAN
java.lang.Boolean
ARRAY
java.util.List
ROW
java.util.Map<String, Object>
- RETOURS
data_type
-
data_type
spécifie le type de données SQL que l'UDF renvoie en sortie. Les types de données Athena répertoriés dans le tableau ci-dessus sont pris en charge. Pour le type deDECIMAL
données, utilisez la syntaxeRETURNS DECIMAL(
oùprecision
,scale
)precision
etscale
sont des entiers. - LAMBDA « »
lambda_function
-
lambda_function
spécifie le nom de la fonction Lambda à invoquer lors de l'exécution de l'UDF. - SÉLECTIONNEZ [...]
UDF_name
(expression
) [...] -
SELECT
Requête qui transmet des valeurs à l'UDF et renvoie un résultat.UDF_name
indique l'UDF à utiliser, suivi d'unexpression
UDF évalué pour transmettre des valeurs. Les valeurs transmises et renvoyées doivent correspondre aux types de données correspondants spécifiés pour l'UDF dans la clauseUSING EXTERNAL FUNCTION
.
Exemples
Pour des exemples de requêtes basées sur le code Athena UDFHandler .java activé