Kueri menggunakan sintaks UDF kueri - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kueri menggunakan sintaks UDF kueri

USING EXTERNAL FUNCTIONKlausa menentukan satu UDF atau beberapa UDFs yang dapat direferensikan oleh SELECT pernyataan berikutnya dalam kueri. Anda memerlukan nama metode untuk UDF dan nama fungsi Lambda yang meng-host. UDF Sebagai pengganti nama fungsi Lambda, Anda dapat menggunakan Lambda. ARN Dalam skenario lintas akun, ARN Lambda diperlukan.

Sinopsis

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)] [...]

Parameter

USING EXTERNAL FUNCTION UDF_name(variable1 data_type[, variable2 data_type][,...])

UDF_namemenentukan namaUDF, yang harus sesuai dengan metode Java dalam fungsi Lambda direferensikan. Masing-masing variable data_type menentukan variabel bernama dan tipe data yang sesuai yang UDF menerima sebagai input. data_typeHarus menjadi salah satu tipe data Athena yang didukung yang tercantum dalam tabel berikut dan peta ke tipe data Java yang sesuai.

Tipe data Athena Tipe data Java

TIMESTAMP

java.waktu. LocalDateTime (UTC)

DATE

java.waktu. LocalDate (UTC)

TINYINT

java.lang.Byte

SMALLINT

java.lang.Short

REAL

java.lang.Float

DOUBLE

java.lang.Double

DECIMAL(lihat RETURNS catatan)

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>

RETURNS data_type

data_typemenentukan tipe SQL data yang UDF dikembalikan sebagai output. Tipe data Athena yang tercantum dalam tabel di atas didukung. Untuk tipe DECIMAL data, gunakan sintaks RETURNS DECIMAL(precision, scale) di mana precision dan scale adalah bilangan bulat.

LAMBDA 'lambda_function'

lambda_functionmenentukan nama fungsi Lambda yang akan dipanggil saat menjalankan. UDF

SELECT [...] UDF_name(expression) [...]

SELECTQuery yang meneruskan nilai ke UDF dan mengembalikan hasilnya. UDF_namemenentukan UDF untuk menggunakan, diikuti oleh expression yang dievaluasi untuk lulus nilai. Nilai yang diteruskan dan dikembalikan harus cocok dengan tipe data yang sesuai yang ditentukan untuk UDF dalam USING EXTERNAL FUNCTION klausa.

Contoh

Misalnya kueri berdasarkan kode A thenaUDFHandler .java GitHub, lihat halaman konektor Amazon GitHub UDF Athena.