Bagikan melalui


Penggunaan ekspresi transformasi data dalam pemetaan aliran data

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Aliran data tersedia di Alur Azure Data Factory dan Azure Synapse. Artikel ini berlaku untuk memetakan aliran data. Jika Anda baru mengenal transformasi, silakan lihat artikel pengantar Transformasi data menggunakan aliran data pemetaan.

Artikel berikut memberikan detail tentang penggunaan seluruh fungsi dan ekpresi yang didukung oleh Azure Data Factory dan Azure Synapse Analytics dalam memetakan arus data. Untuk ringkasan dari setiap jenis fungsi yang didukung, rujuk artikel berikut:

Daftar abjad dari semua fungsi

Berikut ini adalah daftar abjad dari semua fungsi yang tersedia dalam pemetaan aliran data.

A

abs

abs(<value1> : number) => number

Nilai absolut angka.

  • abs(-20) -> 20
  • abs(10) -> 10

acos

acos(<value1> : number) => double

Menghitung nilai terbalik kosinus.

  • acos(1) -> 0.0

add

add(<value1> : any, <value2> : any) => any

Menambahkan sepasang untai atau angka. Menambahkan tanggal ke banyak hari. Menambahkan durasi ke tanda waktu. Menambahkan satu larik dengan jenis yang sama ke larik lainnya. Sama seperti operator +.

  • add(10, 20) -> 30
  • 10 + 20 -> 30
  • add('ice', 'cream') -> 'icecream'
  • 'ice' + 'cream' + ' cone' -> 'icecream cone'
  • add(toDate('2012-12-12'), 3) -> toDate('2012-12-15')
  • toDate('2012-12-12') + 3 -> toDate('2012-12-15')
  • [10, 20] + [30, 40] -> [10, 20, 30, 40]
  • toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') + (days(1) + hours(2) - seconds(10)) -> toTimestamp('2019-02-04 07:19:18.871', 'yyyy-MM-dd HH:mm:ss.SSS')

addDays

addDays(<date/timestamp> : datetime, <days to add> : integral) => datetime

Tambahkan hari ke tanggal atau tanda waktu. Sama seperti operator + untuk tanggal.

  • addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')

addMonths

addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime

Tambahkan bulan ke tanggal atau tanda waktu. Anda dapat secara opsional melewati zona waktu.

  • addMonths(toDate('2016-08-31'), 1) -> toDate('2016-09-30')
  • addMonths(toTimestamp('2016-09-30 10:10:10'), -1) -> toTimestamp('2016-08-31 10:10:10')

and

and(<value1> : boolean, <value2> : boolean) => boolean

Operator AND logika. Sama seperti &&.

  • and(true, false) -> false
  • true && false -> false

approxDistinctCount

approxDistinctCount(<value1> : any, [ <value2> : double ]) => long

Mendapatkan perkiraan jumlah agregat dari nilai yang berbeda untuk sebuah kolom. Parameter kedua opsional adalah untuk mengontrol kesalahan estimasi.

  • approxDistinctCount(ProductID, .05) => long

array

array([<value1> : any], ...) => array

Membuat larik item. Semua item harus berjenis yang sama. Jika tidak ada item yang ditentukan, larik untai kosong diatur ke default. Sama seperti operator pembuatan [].

  • array('Seattle', 'Washington')
  • ['Seattle', 'Washington']
  • ['Seattle', 'Washington'][1]
  • 'Washington'

ascii

ascii(<Input> : string) => number

Mengembalikan nilai numerik dari karakter input. Jika string input memiliki lebih dari satu karakter, nilai numerik dari karakter pertama dikembalikan

  • ascii('A') -> 65
  • ascii('a') -> 97

asin

asin(<value1> : number) => double

Menghitung nilai sinus terbalik.

  • asin(0) -> 0.0

assertErrorMessages

assertErrorMessages() => map

Mengembalikan peta semua pesan kesalahan untuk baris dengan assert ID sebagai kuncinya.

Contoh

  • assertErrorMessages() => ['assert1': 'This row failed on assert1.', 'assert2': 'This row failed on assert2.']. In this example, at(assertErrorMessages(), 'assert1') would return 'This row failed on assert1.'

associate

reassociate(<value1> : map, <value2> : binaryFunction) => map

Membuat peta kunci/nilai. Semua kunci & nilai harus dari jenis yang sama. Jika tidak ada item yang ditentukan, item tersebut default ke peta string ke jenis string. Sama seperti [ -> ] operator pembuatan. Kunci dan nilai harus bergantian satu sama lain.

  • associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']

at

at(<value1> : array/map, <value2> : integer/key type) => array

Menemukan elemen pada indeks array. Indeks berbasis 1. Indeks di luar batas menghasilkan nilai null. Menemukan nilai dalam peta yang diberi kunci. Jika kunci tidak ditemukan, kunci akan mengembalikan null.

  • at(['apples', 'pears'], 1) => 'apples'
  • at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'

atan

atan(<value1> : number) => double

Menghitung nilai tangen terbalik.

  • atan(0) -> 0.0

atan2

atan2(<value1> : number, <value2> : number) => double

Menampilkan sudut dalam radian antara sumbu x positif dari bidang dan titik yang ditentukan oleh koordinat.

  • atan2(0, 0) -> 0.0

avg

avg(<value1> : number) => number

Mendapatkan nilai rata-rata kolom.

  • avg(sales)

avgIf

avgIf(<value1> : boolean, <value2> : number) => number

Berdasarkan kriteria, rata-rata nilai kolom akan diperoleh.

  • avgIf(region == 'West', sales)

B

between

between(<value1> : any, <value2> : any, <value3> : any) => boolean

Memeriksa apakah nilai pertama berada di antara dua nilai lainnya secara inklusif. Nilai numerik, string, dan tanggalwaktu dapat dibandingkan

  • between(10, 5, 24)
  • true
  • between(currentDate(), currentDate() + 10, currentDate() + 20)
  • false

bitwiseAnd

bitwiseAnd(<value1> : integral, <value2> : integral) => integral

Operator And Bitwise di seluruh jenis integral. Sama seperti operator &

  • bitwiseAnd(0xf4, 0xef)
  • 0xe4
  • (0xf4 & 0xef)
  • 0xe4

bitwiseOr

bitwiseOr(<value1> : integral, <value2> : integral) => integral

Operator Or Bitwise di seluruh jenis integral. Sama seperti operator |

  • bitwiseOr(0xf4, 0xef)
  • 0xff
  • (0xf4 | 0xef)
  • 0xff

bitwiseXor

bitwiseXor(<value1> : any, <value2> : any) => any

Operator Or Bitwise di seluruh jenis integral. Sama seperti operator |

  • bitwiseXor(0xf4, 0xef)
  • 0x1b
  • (0xf4 ^ 0xef)
  • 0x1b
  • (true ^ false)
  • true
  • (true ^ true)
  • false

blake2b

blake2b(<value1> : integer, <value2> : any, ...) => string

Menghitung hash Blake2 dari sekumpulan kolom dari berbagai jenis data primitif yang diberi panjang bit, yang hanya dapat berupa kelipatan 8 antara 8 & 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris

  • blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
  • 'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'

blake2bBinary

blake2bBinary(<value1> : integer, <value2> : any, ...) => binary

Menghitung hash Blake2 dari sekumpulan kolom dari berbagai jenis data primitif yang diberi panjang bit, yang hanya dapat berupa kelipatan 8 antara 8 & 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris

  • blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
  • unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')

byItem

byItem(<parent column> : any, <column name> : string) => any

Temukan sub item dalam struktur atau array struktur. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu tindakan konversi jenis (? tanggal, ? string ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • byItem( byName('customer'), 'orderItems') ? (itemName as string, itemQty as integer)
  • byItem( byItem( byName('customer'), 'orderItems'), 'itemName') ? string

byName

byName(<column name> : string, [<stream name> : string]) => any

Memilih nilai kolom menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • toString(byName('parent'))
  • toLong(byName('income'))
  • toBoolean(byName('foster'))
  • toLong(byName($debtCol))
  • toString(byName('Bogus Column'))
  • toString(byName('Bogus Column', 'DeriveStream'))

byNames

byNames(<column names> : array, [<stream name> : string]) => any

Pilih larik kolom menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan untuk kolom, seluruh output adalah nilai NULL. Nilai yang dikembalikan memerlukan fungsi konversi jenis (toDate, toString, ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • toString(byNames(['parent', 'child']))
  • byNames(['parent']) ? string
  • toLong(byNames(['income']))
  • byNames(['income']) ? long
  • toBoolean(byNames(['foster']))
  • toLong(byNames($debtCols))
  • toString(byNames(['a Column']))
  • toString(byNames(['a Column'], 'DeriveStream'))
  • byNames(['orderItem']) ? (itemName as string, itemQty as integer)

byOrigin

byOrigin(<column name> : string, [<origin stream name> : string]) => any

Memilih nilai kolom menurut nama di aliran asal. Argumen kedua adalah nama aliran asal. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • toString(byOrigin('ancestor', 'ancestorStream'))

byOrigins

byOrigins(<column names> : array, [<origin stream name> : string]) => any

Memilih larik kolom menurut nama di aliran. Argumen kedua adalah aliran tempat asalnya. Jika ada beberapa kecocokan, kecocokan pertama akan ditampilkan. Jika tidak ada kecocokan, nilai NULL akan ditampilkan. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))

byPath

byPath(<value1> : string, [<streamName> : string]) => any

Menemukan jalur hierarkis menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Jika tidak ada jalur seperti itu yang ditemukan, maka akan kembali ke null. Nama/jalur kolom yang diketahui pada waktu desain harus ditangani hanya menurut nama atau jalur notasi titik. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • byPath('grandpa.parent.child') => column

byPosition

byPosition(<position> : integer) => any

Memilih nilai kolom berdasarkan posisi relatifnya (berbasis 1) di aliran. Jika posisinya di luar batas, maka akan kembali ke nilai NULL. Nilai yang dikembalikan harus dikonversi oleh salah satu fungsi konversi jenis (TO_DATE, TO_STRING ...). Input komputasi tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • toString(byPosition(1))
  • toDecimal(byPosition(2), 10, 2)
  • toBoolean(byName(4))
  • toString(byName($colName))
  • toString(byPosition(1234))

C

case

case(<condition> : boolean, <true_expression> : any, <false_expression> : any, ...) => any

Berdasarkan kondisi bergantian berlaku satu nilai atau yang lainnya. Jika angka input genap, angka lainnya diatur ke default ke NULL untuk kondisi terakhir.

  • case(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'
  • case(10 + 20 == 25, 'bojjus', 'do' < 'go', 'gunchus') -> 'gunchus'
  • isNull(case(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus')) -> true
  • case(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus', 'dumbo') -> 'dumbo'

cbrt

cbrt(<value1> : number) => double

Menghitung akar kubus dari angka.

  • cbrt(8) -> 2.0

ceil

ceil(<value1> : number) => number

Menampilkan bilangan bulat terkecil yang tidak lebih kecil dari angkanya.

  • ceil(-0.1) -> 0

char

char(<Input> : number) => string

Mengembalikan karakter ascii yang diwakili oleh angka input. Jika angka lebih besar dari 256, hasilnya setara dengan karakter(angka % 256)

  • char(65) -> 'A'
  • char(97) -> 'a'

coalesce

coalesce(<value1> : any, ...) => any

Menampilkan nilai non-null pertama dari sekumpulan input. Semua input harus memiliki jenis yang sama.

  • coalesce(10, 20) -> 10
  • coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'

collect

collect(<value1> : any) => array

Mengumpulkan semua nilai ekspresi dalam grup agregat ke dalam larik. Struktur dapat dikumpulkan dan diubah menjadi struktur alternatif selama proses ini. Jumlah item sama dengan jumlah baris dalam grup tersebut dan dapat berisi nilai null. Jumlah item yang dikumpulkan harus kecil.

  • collect(salesPerson)
  • collect(firstName + lastName))
  • collect(@(name = salesPerson, sales = salesAmount) )

collectUnique

collectUnique(<value1> : any) => array

Mengumpulkan semua nilai ekspresi dalam grup agregat ke dalam larik yang unik. Struktur dapat dikumpulkan dan diubah menjadi struktur alternatif selama proses ini. Jumlah item sama dengan jumlah baris dalam grup tersebut dan dapat berisi nilai null. Jumlah item yang dikumpulkan harus kecil.

  • collect(salesPerson)
  • collect(firstName + lastName))
  • collect(@(name = salesPerson, sales = salesAmount) )

columnNames

columnNames(<value1>columnNames( : string, i><value1> : boolean) => array

Mendapatkan nama semua kolom output untuk aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen pertama. Argumen kedua juga opsional, dengan pernyataan false sebagai default. Jika Anda mengatur argumen kedua ke true(), Data Factory hanya mengembalikan kolom yang di-drifted melalui penyimpangan skema.

  • columnNames()
  • columnNames('DeriveStream')
  • columnNames('DeriveStream', true())
  • columnNames('', true())

columns

columns([<stream name> : string]) => any

Mendapatkan nilai dari semua kolom output untuk aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua.

  • columns()
  • columns('DeriveStream')

compare

compare(<value1> : any, <value2> : any) => integer

Membandingkan dua nilai dengan jenis yang sama. Menampilkan bilangan bulat negatif jika value1 < value2, 0 jika value1 == value2, nilai positif jika value1 > value2.

  • (compare(12, 24) < 1) -> true
  • (compare('dumbo', 'dum') > 0) -> true

concat

concat(<this> : string, <that> : string, ...) => string

Menggabungkan jumlah variabel untai bersama-sama. Sama seperti operator + dengan untai.

  • concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
  • 'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
  • isNull('sql' + null) -> true

concatWS

concatWS(<separator> : string, <this> : string, <that> : string, ...) => string

Menggabungkan jumlah variabel untai bersama-sama dengan pemisah. Parameter pertama adalah pemisah.

  • concatWS(' ', 'dataflow', 'is', 'awesome') -> 'dataflow is awesome'
  • isNull(concatWS(null, 'dataflow', 'is', 'awesome')) -> true
  • concatWS(' is ', 'dataflow', 'awesome') -> 'dataflow is awesome'

contains

contains(<value1> : array, <value2> : unaryfunction) => boolean

Menampilkan true jika elemen dalam larik yang disediakan dievaluasi sebagai true dalam predikat yang disediakan. Berisi harapan sebagai referensi ke satu elemen dalam fungsi predikat sebagai #item.

  • contains([1, 2, 3, 4], #item == 3) -> true
  • contains([1, 2, 3, 4], #item > 5) -> false

cos

cos(<value1> : number) => double

Menghitung nilai kosinus.

  • cos(10) -> -0.8390715290764524

cosh

cosh(<value1> : number) => double

Menghitung kosinus hiperbolik nilai.

  • cosh(0) -> 1.0

count

count([<value1> : any]) => long

Mendapatkan jumlah agregat nilai. Jika satu atau beberapa kolom opsional ditentukan, kolom tersebut mengabaikan nilai NULL dalam hitungan.

  • count(custId)
  • count(custId, custName)
  • count()
  • count(iif(isNull(custId), 1, NULL))

countAll

countAll([<value1> : any]) => long

Dapatkan jumlah nilai gabungan termasuk null.

  • countAll(custId)
  • countAll()

countDistinct

countDistinct(<value1> : any, [<value2> : any], ...) => long

Mendapatkan jumlah agregat nilai yang berbeda dari sekumpulan kolom.

  • countDistinct(custId, custName)

countAllDistinct

countAllDistinct(<value1> : any, [<value2> : any], ...) => long

Dapatkan jumlah nilai gabungan yang berbeda dari sekumpulan kolom termasuk NULL.

  • countAllDistinct(custId, custName)

countIf

countIf(<value1> : boolean, [<value2> : any]) => long

Berdasarkan kriteria, jumlah agregat nilai akan diperoleh. Jika kolom opsional ditentukan, kolom akan mengabaikan nilai NULL dalam jumlah.

  • countIf(state == 'CA' && commission < 10000, name)

covariancePopulation

covariancePopulation(<value1> : number, <value2> : number) => double

Mendapatkan kovarians populasi antara dua kolom.

  • covariancePopulation(sales, profit)

covariancePopulationIf

covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double

Berdasarkan kriteria, kovarians populasi dua kolom akan diperoleh.

  • covariancePopulationIf(region == 'West', sales)

covarianceSample

covarianceSample(<value1> : number, <value2> : number) => double

Mendapatkan contoh kovarians dua kolom.

  • covarianceSample(sales, profit)

covarianceSampleIf

covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double

Berdasarkan kriteria, kovarians sampel dua kolom.

  • covarianceSampleIf(region == 'West', sales, profit)

crc32

crc32(<value1> : any, ...) => long

Menghitung hash CRC32 dari kumpulan kolom dari berbagai jenis data primitif yang diberi panjang bit yang hanya dapat berupa nilai 0(256), 224, 256, 384, 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris.

  • crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L

cumeDist

cumeDist() => integer

Fungsi CumeDist menghitung posisi nilai relatif terhadap semua nilai dalam partisi. Hasilnya adalah jumlah baris sebelum atau sama dengan baris saat ini dalam urutan partisi dibagi dengan jumlah total baris di partisi jendela. Nilai ikatan apa pun dalam urutan dievaluasi ke posisi yang sama.

  • cumeDist()

currentDate

currentDate([<value1> : string]) => date

Mendapatkan tanggal saat ini ketika pekerjaan ini mulai dijalankan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal pusat/wilayah data pabrik data digunakan sebagai default. Lihat kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • currentDate() == toDate('2250-12-31') -> false
  • currentDate('PST') == toDate('2250-12-31') -> false
  • currentDate('America/New_York') == toDate('2250-12-31') -> false

currentTimestamp

currentTimestamp() => timestamp

Mendapatkan tanda waktu saat ini ketika pekerjaan mulai dijalankan dengan zona waktu lokal.

  • currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false

currentUTC

currentUTC([<value1> : string]) => timestamp

Mendapatkan tanda waktu saat ini sebagai UTC. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Ini default ke zona waktu saat ini. Lihat kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. Untuk mengonversi waktu UTC ke penggunaan zona waktu yang berbeda fromUTC().

  • currentUTC() == toTimestamp('2050-12-12 19:18:12') -> false
  • currentUTC() != toTimestamp('2050-12-12 19:18:12') -> true
  • fromUTC(currentUTC(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true

D

dayOfMonth

dayOfMonth(<value1> : datetime) => integer

Mendapatkan hari dalam sebulan yang diberikan tanggal.

  • dayOfMonth(toDate('2018-06-08')) -> 8

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Mendapatkan hari dalam seminggu yang diberikan tanggal. 1 - Minggu, 2 - Senin ..., 7 - Sabtu.

  • dayOfWeek(toDate('2018-06-08')) -> 6

dayOfYear

dayOfYear(<value1> : datetime) => integer

Mendapatkan hari dalam setahun yang diberikan tanggal.

  • dayOfYear(toDate('2016-04-09')) -> 100

days

days(<value1> : integer) => long

Durasi dalam milidetik selama jumlah hari.

  • days(2) -> 172800000L

decode

decode(<Input> : any, <Charset> : string) => binary

Mendekode data input yang dikodekan ke dalam string berdasarkan charset yang diberikan. Argumen kedua (opsional) dapat digunakan untuk menentukan charset mana yang akan digunakan - 'US-ASCII', 'ISO-8859-1', 'UTF-8' (default), 'UTF-16BE', 'UTF-16LE', 'UTF-16'

  • decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc

degrees

degrees(<value1> : number) => double

Mengonversi radian menjadi derajat.

  • degrees(3.141592653589793) -> 180

denseRank

denseRank() => integer

Menghitung peringkat nilai dalam grup nilai yang ditentukan dalam urutan jendela menurut klausul. Hasilnya adalah satu ditambah jumlah baris sebelum atau sama dengan baris saat ini dalam urutan partisi. Nilai tidak menghasilkan celah dalam urutan. Peringkat Padat berfungsi meski data tidak diurutkan dan dapat digunakan untuk mencari perubahan dalam nilai.

  • denseRank()

distinct

distinct(<value1> : array) => array

Mengembalikan satu set item yang berbeda dari array.

  • distinct([10, 20, 30, 10]) => [10, 20, 30]

divide

divide(<value1> : any, <value2> : any) => any

Membagi pasangan angka. Sama seperti operator /.

  • divide(20, 10) -> 2
  • 20 / 10 -> 2

dropLeft

dropLeft(<value1> : string, <value2> : integer) => string

Hapus sebanyak mungkin karakter dari kiri untai. Jika drop yang diminta melebihi panjang untai, untai kosong akan dikembalikan.

  • dropLeft('bojjus', 2) => 'jjus'
  • dropLeft('cake', 10) => ''

dropRight

dropRight(<value1> : string, <value2> : integer) => string

Hapus sebanyak mungkin karakter dari kanan untai. Jika drop yang diminta melebihi panjang untai, untai kosong akan dikembalikan.

  • dropLeft('bojjus', 2) => 'jjus'
  • dropRight('cake', 10) => ''

E

encode

encode(<Input> : string, <Charset> : string) => binary

Mengodekan data string input ke dalam biner berdasarkan charset. Argumen kedua (opsional) dapat digunakan untuk menentukan charset mana yang akan digunakan - 'US-ASCII', 'ISO-8859-1', 'UTF-8' (default), 'UTF-16BE', 'UTF-16LE', 'UTF-16'

  • encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))

endsWith

endsWith(<string> : string, <substring to check> : string) => boolean

Memeriksa apakah untai berakhiran untai yang disediakan.

  • endsWith('dumbo', 'mbo') -> true

equals

equals(<value1> : any, <value2> : any) => boolean

Operator perbandingan sama dengan. Sama seperti operator ==.

  • equals(12, 24) -> false
  • 12 == 24 -> false
  • 'bad' == 'bad' -> true
  • isNull('good' == toString(null)) -> true
  • isNull(null == null) -> true

equalsIgnoreCase

equalsIgnoreCase(<value1> : string, <value2> : string) => boolean

Operator perbandingan sama dengan yang mengabaikan huruf besar/kecil. Sama seperti <=> operator.

  • 'abc'<=>'Abc' -> true
  • equalsIgnoreCase('abc', 'Abc') -> true

escape

escape(<string_to_escape> : string, <format> : string) => string

Melewati untai sesuai dengan format. Nilai literal untuk format yang dapat diterima meliputi 'json', 'xml', 'ecmascript', 'html', 'java'.


except

except(<value1> : array, <value2> : array) => array

Mengembalikan set perbedaan satu array dari duplikat yang menghilangkan yang lainnya.

  • except([10, 20, 30], [20, 40]) => [10, 30]

expr

expr(<expr> : string) => any

Menghasilkan ekspresi dari string. Ini sama dengan menulis ekspresi ini dalam bentuk nonliteral. Ini dapat digunakan untuk meneruskan parameter sebagai representasi untai.

  • expr('price * discount') => any

F

factorial

factorial(<value1> : number) => long

Menghitung faktorial angka.

  • factorial(5) -> 120

false

false() => boolean

Selalu menampilkan nilai false. Gunakan fungsi syntax(false()) jika ada kolom bernama 'false'.

  • (10 + 20 > 30) -> false
  • (10 + 20 > 30) -> false()

filter

filter(<value1> : array, <value2> : unaryfunction) => array

Filter elemen dari array yang tidak memenuhi predikat yang disediakan. Memfilter harapan referensi ke satu elemen dalam fungsi predikat sebagai #item.

  • filter([1, 2, 3, 4], #item > 2) -> [3, 4]
  • filter(['a', 'b', 'c', 'd'], #item == 'a' || #item == 'b') -> ['a', 'b']

find

find(<value1> : array, <value2> : unaryfunction) => any

Temukan item pertama dari array yang sesuai dengan kondisi. Dibutuhkan fungsi filter tempat Anda dapat mengatasi item dalam larik sebagai #item. Untuk peta berlapis banyak, Anda dapat merujuk ke peta induk menggunakan notasi #item_n (#item_1, #item_2...).

  • find([10, 20, 30], #item > 10) -> 20
  • find(['azure', 'data', 'factory'], length(#item) > 4) -> 'azure'
  • find([ @( name = 'Daniel', types = [ @(mood = 'jovial', behavior = 'terrific'), @(mood = 'grumpy', behavior = 'bad') ] ), @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] ) ], contains(#item.types, #item.mood=='happy') /*Filter out the happy kid*/ )
  • @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] )

first

first(<value1> : any, [<value2> : boolean]) => any

Mendapatkan nilai pertama dari grup kolom. Jika parameter kedua ignoreNulls dihilangkan, Data Factory mengasumsikan false.

  • first(sales)
  • first(sales, false)

flatten

flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array

Meratakan array atau banyak array menjadi satu array. Array item atomik dikembalikan tanpa diubah. Argumen terakhir adalah opsional dan default ke false untuk meratakan secara berulang lebih dari satu tingkat kedalaman.

  • flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
  • flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']

floor

floor(<value1> : number) => number

Menampilkan bilangan bulat terbesar yang tidak lebih besar dari angka.

  • floor(-0.1) -> -1

fromBase64

fromBase64(<value1> : string, <encoding type> : string) => string

Mendecode untai yang dikodekan basis64 yang diberikan. Anda dapat secara opsional melewatkan jenis pengkodean.

  • fromBase64('Z3VuY2h1cw==') -> 'gunchus'
  • fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'

fromUTC

fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp

Dikonversi ke tanda waktu dari UTC. Anda dapat secara opsional melewati zona waktu dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Ini default ke zona waktu saat ini. Lihat kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • fromUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
  • fromUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true

G

greater

greater(<value1> : any, <value2> : any) => boolean

Operator perbandingan lebih besar. Sama seperti > operator.

  • greater(12, 24) -> false
  • ('dumbo' > 'dum') -> true
  • (toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS') > toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true

greaterOrEqual

greaterOrEqual(<value1> : any, <value2> : any) => boolean

Operator perbandingan lebih besar dari atau sama dengan. Sama seperti >= operator.

  • greaterOrEqual(12, 12) -> true
  • ('dumbo' >= 'dum') -> true

greatest

greatest(<value1> : any, ...) => any

Menampilkan nilai terbesar di antara daftar nilai sebagai input yang melewati nilai null. Menampilkan null jika semua input null.

  • greatest(10, 30, 15, 20) -> 30
  • greatest(10, toInteger(null), 20) -> 20
  • greatest(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2011-12-12')
  • greatest(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS'), toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')

H

hasColumn

hasColumn(<column name> : string, [<stream name> : string]) => boolean

Memeriksa nilai kolom menurut nama di aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Cukup alamat nama kolom yang dikenal pada waktu desain dengan namanya. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • hasColumn('parent')

hasError

hasError([<value1> : string]) => boolean

Memeriksa apakah aset dengan ID yang disediakan ditandai sebagai kesalahan.

Contoh

  • hasError('assert1')
  • hasError('assert2')

hasPath

hasPath(<value1> : string, [<streamName> : string]) => boolean

Memeriksa apakah jalur hierarkis tertentu ada menurut nama dalam aliran. Anda dapat meneruskan nama aliran opsional sebagai argumen kedua. Nama/jalur kolom yang diketahui pada waktu desain harus ditangani hanya menurut nama atau jalur notasi titik. Input yang dihitung tidak didukung tetapi Anda dapat menggunakan substitusi parameter.

  • hasPath('grandpa.parent.child') => boolean

hex

hex(<value1>: binary) => string

Menampilkan representasi untai heksa dari nilai biner

  • hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'

hour

hour(<value1> : timestamp, [<value2> : string]) => integer

Mendapatkan nilai jam tanda waktu. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • hour(toTimestamp('2009-07-30 12:58:59')) -> 12
  • hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12

hours

hours(<value1> : integer) => long

Durasi dalam milidetik untuk jumlah jam.

  • hours(2) -> 7200000L

I

iif

iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any

Berdasarkan kondisi berlaku satu nilai atau nilai lainnya. Jika yang lain tidak ditentukan, nilai dianggap NULL. Kedua nilai harus kompatibel (numerik, string...).

  • iif(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'
  • iif(10 > 30, 'dumbo', 'gumbo') -> 'gumbo'
  • iif(month(toDate('2018-12-01')) == 12, 345.12, 102.67) -> 345.12

iifNull

iifNull(<value1> : any, [<value2> : any], ...) => any

Dengan dua atau lebih input, dapat mengembalikan item pertama yang bukan null. Fungsi ini setara dengan coalesce.

  • iifNull(10, 20) -> 10
  • iifNull(null, 20, 40) -> 20
  • iifNull('azure', 'data', 'factory') -> 'azure'
  • iifNull(null, 'data', 'factory') -> 'data'

in

in(<array of items> : array, <item to find> : any) => boolean

Memeriksa apakah item ada dalam array.

  • in([10, 20, 30], 10) -> true
  • in(['good', 'kid'], 'bad') -> false

initCap

initCap(<value1> : string) => string

Mengonversi huruf pertama setiap kata menjadi huruf besar. Kata-kata diidentifikasi sebagai dipisahkan oleh spasi putih.

  • initCap('cool iceCREAM') -> 'Cool Icecream'

instr

instr(<string> : string, <substring to find> : string) => integer

Menemukan posisi (berbasis 1) substring dalam string. 0 ditampilkan jika tidak ditemukan.

  • instr('dumbo', 'mbo') -> 3
  • instr('microsoft', 'o') -> 5
  • instr('good', 'bad') -> 0

intersect

intersect(<value1> : array, <value2> : array) => array

Mengembalikan sekumpulan persimpangan item yang berbeda dari dua array.

  • intersect([10, 20, 30], [20, 40]) => [20]

isBitSet

isBitSet (<value1> : array, <value2>:integer ) => boolean

Memeriksa apakah posisi bit diatur dalam bitset ini

  • isBitSet(toBitSet([10, 32, 98]), 10) => true

isBoolean

isBoolean(<value1>: string) => boolean

Memeriksa apakah nilai untai berupa nilai boolean menurut aturan toBoolean()

  • isBoolean('true') -> true
  • isBoolean('no') -> true
  • isBoolean('microsoft') -> false

isByte

isByte(<value1> : string) => boolean

Memeriksa apakah nilai untai berupa nilai byte yang diberi format opsional menurut aturan toByte()

  • isByte('123') -> true
  • isByte('chocolate') -> false

isDate

isDate (<value1> : string, [<format>: string]) => boolean

Memeriksa apakah untai tanggal input berupa tanggal menggunakan format tanggal input opsional. Lihat SimpleDateFormat Java untuk mengetahui format yang tersedia. Jika format tanggal input dihilangkan, format default-nya adalah yyyy-[M]M-[d]d. Format yang diterima meliputi [ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ]

  • isDate('2012-8-18') -> true
  • isDate('12/18--234234' -> 'MM/dd/yyyy') -> false

isDecimal

isDecimal (<value1> : string) => boolean

Memeriksa apakah nilai string berupa nilai desimal yang diberi format opsional sesuai aturan toDecimal()

  • isDecimal('123.45') -> true
  • isDecimal('12/12/2000') -> false

isDelete

isDelete([<value1> : integer]) => boolean

Memeriksa apakah baris ditandai untuk dihapus. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isDelete()
  • isDelete(1)

isDistinct

isDistinct(<value1> : any , <value1> : any) => boolean

Menemukan apakah kolom atau kumpulan kolom berbeda. Null tidak akan dihitung sebagai nilai yang berbeda

  • isDistinct(custId, custName) => boolean

isDouble

isDouble (<value1> : string, [<format>: string]) => boolean

Periksa apakah nilai string berupa nilai dengan bilangan cacah ganda yang diberi format opsional sesuai aturan toDouble()

  • isDouble('123') -> true
  • isDouble('$123.45' -> '$###.00') -> true
  • isDouble('icecream') -> false

isError

isError([<value1> : integer]) => boolean

Memeriksa apakah baris ditandai sebagai kesalahan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isError()
  • isError(1)

isFloat

isFloat (<value1> : string, [<format>: string]) => boolean

Periksa apakah nilai string berupa nilai dengan bilangan cacah yang diberi format opsional sesuai aturan toFloat()

  • isFloat('123') -> true
  • isFloat('$123.45' -> '$###.00') -> true
  • isFloat('icecream') -> false

isIgnore

isIgnore([<value1> : integer]) => boolean

Memeriksa apakah baris ditandai untuk diabaikan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isIgnore()
  • isIgnore(1)

isInsert

isInsert([<value1> : integer]) => boolean

Memeriksa apakah baris ditandai untuk disisipkan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isInsert()
  • isInsert(1)

isInteger

isInteger (<value1> : string, [<format>: string]) => boolean

Periksa apakah nilai string berupa nilai dengan bilangan bulat yang diberi format opsional sesuai aturan toInteger()

  • isInteger('123') -> true
  • isInteger('$123' -> '$###') -> true
  • isInteger('microsoft') -> false

isLong

isLong (<value1> : string, [<format>: string]) => boolean

Periksa apakah nilai string berupa nilai dengan jangkauan panjang yang diberi format opsional sesuai aturan toLong()

  • isLong('123') -> true
  • isLong('$123' -> '$###') -> true
  • isLong('gunchus') -> false

isMatch

isMatch([<value1> : integer]) => boolean

Memeriksa apakah baris cocok di pencarian. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isMatch()
  • isMatch(1)

isNan

isNan (<value1> : integral) => boolean

Periksa apakah ini bukan angka.

  • isNan(10.2) => false

isNull

isNull(<value1> : any) => boolean

Memeriksa apakah nilainya NULL.

  • isNull(NULL()) -> true
  • isNull('') -> false

isShort

isShort (<value1> : string, [<format>: string]) => boolean

Periksa apakah nilai string berupa nilai dengan jangkauan pendek yang diberi format opsional sesuai aturan toShort()

  • isShort('123') -> true
  • isShort('$123' -> '$###') -> true
  • isShort('microsoft') -> false

isTimestamp

isTimestamp (<value1> : string, [<format>: string]) => boolean

Memeriksa apakah untai tanggal input berupa tanda waktu menggunakan format tanda waktu input opsional. Lihat SimpleDateFormat Java untuk mengetahui format yang tersedia. Jika tanda waktu dihilangkan, pola default yyyy-[M]M-[d]d hh:mm:ss[.f...] akan digunakan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Tanda waktu mendukung hingga akurasi milidetik dengan nilai 999. Lihat SimpleDateFormat Java untuk mengetahui format yang tersedia.

  • isTimestamp('2016-12-31 00:12:00') -> true
  • isTimestamp('2016-12-31T00:12:00' -> 'yyyy-MM-dd\\'T\\'HH:mm:ss' -> 'PST') -> true
  • isTimestamp('2012-8222.18') -> false

isUpdate

isUpdate([<value1> : integer]) => boolean

Memeriksa apakah baris ditandai untuk diperbarui. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isUpdate()
  • isUpdate(1)

isUpsert

isUpsert([<value1> : integer]) => boolean

Memeriksa apakah baris ditandai untuk disisipkan. Untuk transformasi yang mengambil lebih dari satu aliran input, Anda dapat melewati indeks aliran (berbasis 1). Indeks aliran harus 1 atau 2 dan nilai default-nya adalah 1.

  • isUpsert()
  • isUpsert(1)

J

jaroWinkler

jaroWinkler(<value1> : string, <value2> : string) => double

Mendapatkan jarak JaroWinkler antara dua untai.

  • jaroWinkler('frog', 'frog') => 1.0

K

keyValues

keyValues(<value1> : array, <value2> : array) => map

Membuat peta kunci/nilai. Parameter pertama adalah array kunci dan yang kedua adalah array nilai. Kedua array harus memiliki panjang yang sama.

  • keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']

kurtosis

kurtosis(<value1> : number) => double

Mendapatkan kurtosis kolom.

  • kurtosis(sales)

kurtosisIf

kurtosisIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, kurtosis kolom akan diperoleh.

  • kurtosisIf(region == 'West', sales)

L

lag

lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any

Mendapatkan nilai baris n yang dievaluasi parameter pertama sebelum baris saat ini. Parameter kedua adalah jumlah baris yang akan digunakan kembali dan nilai default-nya adalah 1. Jika barisnya tidak terlalu banyak, nilai null akan ditampilkan kembali kecuali jika nilai default telah ditentukan.

  • lag(amount, 2)
  • lag(amount, 2000, 100)

last

last(<value1> : any, [<value2> : boolean]) => any

Mendapatkan nilai terakhir grup kolom. Jika parameter kedua ignoreNulls dihilangkan, parameter kedua diasumsikan sebagai false.

  • last(sales)
  • last(sales, false)

lastDayOfMonth

lastDayOfMonth(<value1> : datetime) => date

Mendapatkan tanggal terakhir dari bulan yang diberikan tanggal.

  • lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')

lead

lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any

Mendapatkan baris n yang dievaluasi parameter pertama setelah baris saat ini. Parameter kedua adalah jumlah baris yang diharapkan dan nilai defaultnya adalah 1. Jika barisnya tidak terlalu banyak, nilai null akan ditampilkan kembali kecuali jika nilai default telah ditentukan.

  • lead(amount, 2)
  • lead(amount, 2000, 100)

least

least(<value1> : any, ...) => any

Operator perbandingan kurang dari atau sama dengan. Sama seperti <= operator.

  • least(10, 30, 15, 20) -> 10
  • least(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2000-12-12')

left

left(<string to subset> : string, <number of characters> : integral) => string

Mengekstrak permulaan substring di indeks 1 dengan jumlah karakter. Sama seperti SUBSTRING(str, 1, n).

  • left('bojjus', 2) -> 'bo'
  • left('bojjus', 20) -> 'bojjus'

length

length(<value1> : string) => integer

Menampilkan panjang untai.

  • length('dumbo') -> 5

lesser

lesser(<value1> : any, <value2> : any) => boolean

Operator perbandingan lebih sedikit. Sama seperti < operator.

  • lesser(12, 24) -> true
  • ('abcd' < 'abc') -> false
  • (toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') < toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true

lesserOrEqual

lesserOrEqual(<value1> : any, <value2> : any) => boolean

Operator perbandingan kurang dari atau sama dengan. Sama seperti <= operator.

  • lesserOrEqual(12, 12) -> true
  • ('dumbo' <= 'dum') -> false

levenshtein

levenshtein(<from string> : string, <to string> : string) => integer

Mendapatkan jarak levenshtein antara dua untai.

  • levenshtein('boys', 'girls') -> 4

like

like(<string> : string, <pattern match> : string) => boolean

Polanya adalah untai yang dicocokkan secara harfiah. Pengecualian adalah simbol khusus berikut: _ cocok dengan satu karakter dalam input (mirip dengan. Dalam posix ekspresi reguler) % cocok dengan nol atau lebih karakter dalam input (mirip .* dengan dalam posix ekspresi reguler). Karakter escape-nya adalah ''. Jika karakter escape mendahului simbol khusus atau karakter escape lainnya, karakter berikut ini dicocokkan secara harfiah. Karakter lain akan tidak valid jika dibuat escape.

  • like('icecream', 'ice%') -> true

locate

locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer

Menemukan posisi (berbasis 1) substring dalam string yang memulai posisi tertentu. Jika posisi dihilangkan, itu dianggap dari awal string. 0 ditampilkan jika tidak ditemukan.

  • locate('mbo', 'dumbo') -> 3
  • locate('o', 'microsoft', 6) -> 7
  • locate('bad', 'good') -> 0

log

log(<value1> : number, [<value2> : number]) => double

Menghitung nilai log. Basis opsional dapat diberikan nomor Euler lain jika digunakan.

  • log(100, 10) -> 2

log10

log10(<value1> : number) => double

Menghitung nilai log berdasarkan basis 10.

  • log10(100) -> 2

lookup

lookup(key, key2, ...) => complex[]

Mencari baris pertama dari cache sink menggunakan tombol yang ditentukan yang cocok dengan kunci dari cache sink.

  • cacheSink#lookup(movieId)

lower

lower(<value1> : string) => string

Memberi huruf kecil pada untai.

  • lower('GunChus') -> 'gunchus'

lpad

lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string

Melapisi kiri untai dengan lapisan yang disediakan hingga memiliki panjang tertentu. Jika string sama dengan atau lebih besar dari panjang, maka akan dipangkas sesuai panjangnya.

  • lpad('dumbo', 10, '-') -> '-----dumbo'
  • lpad('dumbo', 4, '-') -> 'dumb'

ltrim

ltrim(<string to trim> : string, [<trim characters> : string]) => string

Memangkas kiri untai karakter awal. Jika tidak ditentukan, parameter kedua akan memangkas spasi putih. Selain itu, karakter apa pun yang ditentukan dalam parameter kedua akan dipangkas.

  • ltrim(' dumbo ') -> 'dumbo '
  • ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'

M

map

map(<value1> : array, <value2> : unaryfunction) => any

Memetakan setiap elemen array ke elemen baru menggunakan ekspresi yang disediakan. Azure Maps mengharapkan referensi ke satu elemen dalam fungsi ekspresi sebagai #item.

  • map([1, 2, 3, 4], #item + 2) -> [3, 4, 5, 6]
  • map(['a', 'b', 'c', 'd'], #item + '_processed') -> ['a_processed', 'b_processed', 'c_processed', 'd_processed']

mapAssociation

mapAssociation(<value1> : map, <value2> : binaryFunction) => array

Mengubah peta dengan mengaitkan kunci ke nilai baru. Mengembalikan array. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi item sebagai nilai #item dan indeks saat ini sebagai #index.

  • mapAssociation(['bojjus' -> 'gunchus', 'appa' -> 'ammi'], @(key = #key, value = #value)) => [@(key = 'bojjus', value = 'gunchus'), @(key = 'appa', value = 'ammi')]

mapIf

mapIf (<value1> : array, <value2> : binaryfunction, <value3>: binaryFunction) => any

Secara kondisional memetakan array ke array lainnya dengan panjang yang sama atau lebih kecil. Nilai dapat berjenis data apa pun termasuk structTypes. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi item dalam larik sebagai #item dan indeks saat ini sebagai #index. Untuk peta berlapis banyak, Anda dapat melihat peta induk menggunakan #item_[n](#item_1, #index_1...) notasi.

  • mapIf([10, 20, 30], #item > 10, #item + 5) -> [25, 35]
  • mapIf(['icecream', 'cake', 'soda'], length(#item) > 4, upper(#item)) -> ['ICECREAM', 'CAKE']

mapIndex

mapIndex(<value1> : array, <value2> : binaryfunction) => any

Memetakan setiap elemen array ke elemen baru menggunakan ekspresi yang disediakan. Peta mengharapkan referensi ke satu elemen dalam fungsi ekspresi sebagai #item dan referensi ke elemen indeks sebagai #item.

  • mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]

mapLoop

mapLoop(<value1> : integer, <value2> : unaryfunction) => any

Perulangan dari 1 ke panjang untuk membuat array dengan panjang tersebut. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi indeks dalam larik sebagai #index. Untuk peta berlapis banyak, Anda dapat melihat peta induk menggunakan notasi #index_n (#index_1, #index_2...).

  • mapLoop(3, #index * 10) -> [10, 20, 30]

max

max(<value1> : any) => any

Mendapatkan nilai maksimum kolom.

  • max(sales)

maxIf

maxIf(<value1> : boolean, <value2> : any) => any

Berdasarkan kriteria, nilai maksimum kolom akan diperoleh.

  • maxIf(region == 'West', sales)

md5

md5(<value1> : any, ...) => string

Menghitung hash MD5 dari sekumpulan kolom berbagai jenis data primitif dan menampilkan string heksa 32 karakter. Ini dapat digunakan untuk menghitung sidik jari untuk baris.

  • md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'

mean

mean(<value1> : number) => number

Mendapatkan nilai rata-rata kolom. Sama seperti AVG.

  • mean(sales)

meanIf

meanIf(<value1> : boolean, <value2> : number) => number

Berdasarkan kriteria, nilai rata-rata kolom akan diperoleh. Sama seperti avgIf.

  • meanIf(region == 'West', sales)

millisecond

millisecond(<value1> : timestamp, [<value2> : string]) => integer

Mendapatkan nilai milidetik tanggal. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871

milliseconds

milliseconds(<value1> : integer) => long

Durasi dalam milidetik untuk jumlah milidetik.

  • milliseconds(2) -> 2L

min

min(<value1> : any) => any

Mendapatkan nilai minimum kolom.

  • min(sales)

minIf

minIf(<value1> : boolean, <value2> : any) => any

Berdasarkan kriteria, nilai minimum kolom akan diperoleh.

  • minIf(region == 'West', sales)

minus

minus(<value1> : any, <value2> : any) => any

Mengurangi angka. Mengurangi jumlah hari dari tanggal tertentu. Mengurangi durasi dari tanda waktu. Kurangi dua tanda waktu untuk mendapatkan selisih dalam milidetik. Sama seperti operator -.

  • minus(20, 10) -> 10
  • 20 - 10 -> 10
  • minus(toDate('2012-12-15'), 3) -> toDate('2012-12-12')
  • toDate('2012-12-15') - 3 -> toDate('2012-12-12')
  • toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') + (days(1) + hours(2) - seconds(10)) -> toTimestamp('2019-02-04 07:19:18.871', 'yyyy-MM-dd HH:mm:ss.SSS')
  • toTimestamp('2019-02-03 05:21:34.851', 'yyyy-MM-dd HH:mm:ss.SSS') - toTimestamp('2019-02-03 05:21:36.923', 'yyyy-MM-dd HH:mm:ss.SSS') -> -2072

minute

minute(<value1> : timestamp, [<value2> : string]) => integer

Mendapatkan nilai menit dari tanda waktu. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • minute(toTimestamp('2009-07-30 12:58:59')) -> 58
  • minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58

minutes

minutes(<value1> : integer) => long

Durasi dalam milidetik untuk jumlah menit.

  • minutes(2) -> 120000L

mlookup

mlookup(key, key2, ...) => complex[]

Mencari semua baris yang cocok dari cache sink menggunakan tombol yang ditentukan yang cocok dengan tombol cache sink.

  • cacheSink#mlookup(movieId)

mod

mod(<value1> : any, <value2> : any) => any

Modulus pasangan angka. Sama seperti operator %.

  • mod(20, 8) -> 4
  • 20 % 8 -> 4

month

month(<value1> : datetime) => integer

Mendapatkan nilai bulan dari tanggal atau tanda waktu.

  • month(toDate('2012-8-8')) -> 8

monthsBetween

monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double

Mendapatkan jumlah bulan di antara dua tanggal. Anda dapat membulatkan perhitungan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677

multiply

multiply(<value1> : any, <value2> : any) => any

Mengalikan pasangan angka. Sama seperti operator *.

  • multiply(20, 10) -> 200
  • 20 * 10 -> 200

N

negate

negate(<value1> : number) => number

Meniadakan angka. Mengubah angka positif menjadi negatif dan sebaliknya.

  • negate(13) -> -13

nextSequence

nextSequence() => long

Menampilkan urutan unik berikutnya. Angka hanya berurutan dalam partisi dan diawali oleh partitionId.

  • nextSequence() == 12313112 -> false

normalize

normalize(<String to normalize> : string) => string

Menormalkan nilai untai untuk memisahkan karakter unicode beraksen.

  • regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'

not

not(<value1> : boolean) => boolean

Operator negasi logika.

  • not(true) -> false
  • not(10 == 20) -> true

notEquals

notEquals(<value1> : any, <value2> : any) => boolean

Operator perbandingan tidak sama dengan. Sama seperti operator !=.

  • 12 != 24 -> true
  • 'bojjus' != 'bo' + 'jjus' -> false

nTile

nTile([<value1> : integer]) => integer

Fungsi NTile membagi baris untuk setiap partisi jendela menjadi wadah n dalam rentang dari 1 hingga maksimal n. Nilai wadah akan berbeda paling banyak 1. Jika jumlah baris dalam partisi tidak dibagi rata menjadi dalam jumlah wadah, maka sisa nilainya akan didistribusikan satu per wadah, dimulai dari wadah pertama. Fungsi NTile berguna untuk penghitungan tertiles, kuartil, desil, dan statistik ringkasan umum lainnya. Fungsi ini menghitung dua variabel selama inisialisasi: Ukuran wadah biasa akan memiliki satu baris tambahan yang ditambahkan ke dalamnya. Kedua variabel didasarkan pada ukuran partisi saat ini. Selama proses penghitungan, fungsi akan melacak nomor baris saat ini, nomor wadah saat ini, dan nomor baris tempat wadah akan berubah (bucketThreshold). Jika jumlah baris saat ini mencapai ambang batas wadah, nilai wadah akan ditingkatkan satu dan ambang batasnya bertambah berdasarkan ukuran wadah (ditambah satu baris tambahan jika wadah saat ini berlapis).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Menampilkan nilai NULL. Gunakan fungsi syntax(null()) jika ada kolom bernama 'null'. Setiap operasi yang menggunakan akan menghasilkan NULL.

  • isNull('dumbo' + null) -> true
  • isNull(10 * null) -> true
  • isNull('') -> false
  • isNull(10 + 20) -> false
  • isNull(10/0) -> true

O

or

or(<value1> : boolean, <value2> : boolean) => boolean

Operator OR logika. Sama seperti ||.

  • or(true, false) -> true
  • true || false -> true

originColumns

originColumns(<streamName> : string) => any

Mendapatkan seluruh kolom output untuk aliran asal tempat kolom dibuat. Harus diapit dalam fungsi lain.

  • array(toString(originColumns('source1')))

output

output() => any

Menampilkan baris pertama hasil cache sink

  • cacheSink#output()

outputs

output() => any

Menampilkan seluruh rangkaian baris output dari hasil cache sink

  • cacheSink#outputs()

P

partitionId

partitionId() => integer

Mengembalikan id partisi saat ini di tempat baris input.

  • partitionId()

pMod

pMod(<value1> : any, <value2> : any) => any

Modulus positif pasangan angka.

  • pmod(-20, 8) -> 4

power

power(<value1> : number, <value2> : number) => double

Menaikkan satu angka ke kekuatan angka lainnya.

  • power(10, 2) -> 100

R

radians

radians(<value1> : number) => double

Mengonversi derajat ke radian

  • radians(180) => 3.141592653589793

random

random(<value1> : integral) => long

Menampilkan angka acak yang diberikan seed opsional dalam partisi. Seed harus berupa nilai tetap dan digunakan sesuai dengan partitionId untuk menghasilkan nilai acak

  • random(1) == 1 -> false

rank

rank() => integer

Menghitung peringkat nilai dalam grup nilai yang ditentukan dalam urutan jendela menurut klausul. Hasilnya adalah satu ditambah jumlah baris sebelum atau sama dengan baris saat ini dalam urutan partisi. Nilai ini akan menghasilkan celah dalam urutan. Peringkat berfungsi meski data tidak diurutkan dan dapat digunakan untuk mencari perubahan dalam nilai.

  • rank()

reassociate

reassociate(<value1> : map, <value2> : binaryFunction) => map

Mengubah peta dengan mengaitkan kunci ke nilai baru. Dibutuhkan fungsi pemetaan tempat Anda dapat mengatasi item sebagai nilai #item dan indeks saat ini sebagai #index.

  • reassociate(['fruit' -> 'apple', 'vegetable' -> 'tomato'], substring(#key, 1, 1) + substring(#value, 1, 1)) => ['fruit' -> 'fa', 'vegetable' -> 'vt']

reduce

reduce(<value1> : array, <value2> : any, <value3> : binaryfunction, <value4> : unaryfunction) => any

Mengakumulasi elemen dalam array. Kurangi mengharapkan referensi ke akumulator dan satu elemen dalam fungsi ekspresi pertama sebagai #acc dan #item dan mengharapkan nilai yang dihasilkan sebagai #result yang akan digunakan dalam fungsi ekspresi kedua.

  • toString(reduce(['1', '2', '3', '4'], '0', #acc + #item, #result)) -> '01234'

regexExtract

regexExtract(<string> : string, <regex to find> : string, [<match group 1-based index> : integral]) => string

Ekstrak substring yang cocok untuk pola regex yang diberikan. Parameter terakhir mengidentifikasi grup kecocokan dan diatur ke default ke 1 jika dihilangkan. Gunakan <regex> (kutipan balik) untuk mencocokkan untai tanpa menekan tombol escape. Indeks 0 mengembalikan semua kecocokan. Tanpa grup kecocokan, indeks 1 ke atas tidak akan mengembalikan hasil apa pun.

  • regexExtract('Cost is between 600 and 800 dollars', '(\\d+) and (\\d+)', 2) -> '800'
  • regexExtract('Cost is between 600 and 800 dollars', `(\d+) and (\d+)`, 2) -> '800'

regexMatch

regexMatch(<string> : string, <regex to match> : string) => boolean

Memeriksa apakah untai cocok dengan pola regex yang diberikan. Gunakan <regex> (kutipan balik) untuk mencocokkan untai tanpa menekan tombol escape.

  • regexMatch('200.50', '(\\d+).(\\d+)') -> true
  • regexMatch('200.50', `(\d+).(\d+)`) -> true

regexReplace

regexReplace(<string> : string, <regex to find> : string, <substring to replace> : string) => string

Ganti semua kemunculan pola regex dengan substring lain dalam untai yang diberikan Gunakan <regex> (kutipan balik) untuk mencocokkan untai tanpa menekan tombol escape.

  • regexReplace('100 and 200', '(\\d+)', 'bojjus') -> 'bojjus and bojjus'
  • regexReplace('100 and 200', `(\d+)`, 'gunchus') -> 'gunchus and gunchus'

regexSplit

regexSplit(<string to split> : string, <regex expression> : string) => array

Memisahkan untai berdasarkan pemisah berdasarkan regex dan menampilkan larik untai.

  • regexSplit('bojjusAgunchusBdumbo', `[CAB]`) -> ['bojjus', 'gunchus', 'dumbo']
  • regexSplit('bojjusAgunchusBdumboC', `[CAB]`) -> ['bojjus', 'gunchus', 'dumbo', '']
  • (regexSplit('bojjusAgunchusBdumboC', `[CAB]`)[1]) -> 'bojjus'
  • isNull(regexSplit('bojjusAgunchusBdumboC', `[CAB]`)[20]) -> true

replace

replace(<string> : string, <substring to find> : string, [<substring to replace> : string]) => string

Ganti semua kemunculan substring dengan substring lain dalam untai yang diberikan. Jika parameter terakhir dihilangkan, parameter diatur ke default menjadi string kosong.

  • replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
  • replace('doggie dog', 'dog', '') -> 'gie '
  • replace('doggie dog', 'dog') -> 'gie '

reverse

reverse(<value1> : string) => string

Membalikkan untai.

  • reverse('gunchus') -> 'suhcnug'

right(<string to subset> : string, <number of characters> : integral) => string

Mengekstrak substring dengan jumlah karakter dari kanan. Sama seperti SUBSTRING(str, LENGTH(str) - n, n).

  • right('bojjus', 2) -> 'us'
  • right('bojjus', 20) -> 'bojjus'

rlike

rlike(<string> : string, <pattern match> : string) => boolean

Memeriksa apakah untai cocok dengan pola regex yang diberikan.

  • rlike('200.50', `(\d+).(\d+)`) -> true
  • rlike('bogus', `M[0-9]+.*`) -> false

round

round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double

Membulatkan angka yang diberi skala opsional dan mode pembulatan opsional. Jika skala dihilangkan, defaultnya adalah 0. Jika mode dihilangkan, mode diatur ke default ke ROUND_HALF_UP(5). Nilai untuk pembulatan meliputi

  1. ROUND_UP - Mode pembulatan untuk membulatkan jauh dari nol.
  2. ROUND_DOWN - Mode pembulatan untuk membulatkan ke arah nol.
  3. ROUND_CEILING - Mode pembulatan untuk membulatkan ke arah tak terbatas positif. [Sama seperti ROUND_UP jika input positif. Jika negatif, berulah sebagai ROUND_DOWN. Contoh = -1.1 akan menjadi -1.0 dengan ROUND_CEILING dan -2 dengan ROUND_UP]
  4. ROUND_FLOOR - Mode pembulatan untuk membulatkan ke arah tak terbatas negatif. [Sama seperti ROUND_DOWN jika input positif. Jika negatif, berulah sebagai ROUND_UP]
  5. ROUND_HALF_UP - Mode pembulatan untuk berputar menuju "tetangga terdekat" kecuali kedua tetangga bersifat ekuisis, dalam hal ini ROUND_UP. [Paling umum + default untuk Aliran Data].
  6. ROUND_HALF_DOWN - Mode pembulatan untuk membulatkan ke arah "tetangga terdekat" kecuali kedua tetangga bersifat ekuisis, dalam hal ini ROUND_DOWN.
  7. ROUND_HALF_EVEN - Mode pembulatan untuk membulatkan ke arah "tetangga terdekat" kecuali kedua tetangga bersifat ekuisisan, dalam hal ini, bulat menuju tetangga yang bahkan.
  8. ROUND_UNNECESSARY - Mode pembulatan untuk menegaskan bahwa operasi putaran memiliki hasil yang tepat, sehingga tidak diperlukan pembulatan.
  • round(100.123) -> 100.0
  • round(2.5, 0) -> 3.0
  • round(5.3999999999999995, 2, 7) -> 5.40

rowNumber

rowNumber() => integer

Menetapkan penomoran baris berurutan untuk baris dalam jendela yang dimulai dengan 1.

  • rowNumber()

rpad

rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string

Melapisi kanan untai dengan lapisan yang disediakan hingga memiliki panjang tertentu. Jika string sama dengan atau lebih besar dari panjang, maka akan dipangkas sesuai panjangnya.

  • rpad('dumbo', 10, '-') -> 'dumbo-----'
  • rpad('dumbo', 4, '-') -> 'dumb'
  • rpad('dumbo', 8, '<>') -> 'dumbo<><'

rtrim

rtrim(<string to trim> : string, [<trim characters> : string]) => string

Pangkas kanan untai karakter terakhir. Jika tidak ditentukan, parameter kedua akan memangkas spasi putih. Selain itu, karakter apa pun yang ditentukan dalam parameter kedua akan dipangkas.

  • rtrim(' dumbo ') -> ' dumbo'
  • rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'

S

second

second(<value1> : timestamp, [<value2> : string]) => integer

Mendapatkan nilai kedua dari tanggal. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Zona waktu lokal digunakan sebagai default. Mengaculah pada kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • second(toTimestamp('2009-07-30 12:58:59')) -> 59

seconds

seconds(<value1> : integer) => long

Durasi dalam milidetik untuk jumlah detik.

  • seconds(2) -> 2000L

setBitSet

setBitSet (<value1>: array, <value2>:array) => array

Mengatur posisi bit dalam bitset ini

  • setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]

sha1

sha1(<value1> : any, ...) => string

Menghitung hash SHA-1 dari serangkaian kolom berbagai jenis data primitif dan menampilkan string heksa 40 karakter. Ini dapat digunakan untuk menghitung sidik jari untuk baris.

  • sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'

sha2

sha2(<value1> : integer, <value2> : any, ...) => string

Menghitung hash SHA-2 dari serangkaian kolom berbagai jenis data primitif yang diberikan panjang bit yang hanya dapat berupa nilai 0(256), 224, 256, 384, 512. Ini dapat digunakan untuk menghitung sidik jari untuk baris.

  • sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'

sin

sin(<value1> : number) => double

Menghitung nilai sinus.

  • sin(2) -> 0.9092974268256817

sinh

sinh(<value1> : number) => double

Menghitung nilai sinus hiperbolik.

  • sinh(0) -> 0.0

size

size(<value1> : any) => integer

Menemukan ukuran jenis array atau peta

  • size(['element1', 'element2']) -> 2
  • size([1,2,3]) -> 3

skewness

skewness(<value1> : number) => double

Mendapatkan kecondongan kolom.

  • skewness(sales)

skewnessIf

skewnessIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, kecondongan kolom akan diperoleh.

  • skewnessIf(region == 'West', sales)

slice

slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array

Mengekstrak subset larik dari suatu posisi. Posisi berbasis 1. Jika panjang dihilangkan, panjangnya diatur ke default ke akhir string.

  • slice([10, 20, 30, 40], 1, 2) -> [10, 20]
  • slice([10, 20, 30, 40], 2) -> [20, 30, 40]
  • slice([10, 20, 30, 40], 2)[1] -> 20
  • isNull(slice([10, 20, 30, 40], 2)[0]) -> true
  • isNull(slice([10, 20, 30, 40], 2)[20]) -> true
  • slice(['a', 'b', 'c', 'd'], 8) -> []

sort

sort(<value1> : array, <value2> : binaryfunction) => array

Mengurutkan larik menggunakan fungsi predikat yang disediakan. Urutkan untuk memprediksi referensi ke dua elemen berurutan dalam fungsi ekspresi sebagai #item1 dan #item2.

  • sort([4, 8, 2, 3], compare(#item1, #item2)) -> [2, 3, 4, 8]
  • sort(['a3', 'b2', 'c1'], iif(right(#item1, 1) >= right(#item2, 1), 1, -1)) -> ['c1', 'b2', 'a3']

soundex

soundex(<value1> : string) => string

Mendapatkan kode soundex untuk untai.

  • soundex('genius') -> 'G520'

split

split(<string to split> : string, <split characters> : string) => array

Memisahkan untai berdasarkan pemisah dan menampilkan larik untai.

  • split('bojjus,guchus,dumbo', ',') -> ['bojjus', 'guchus', 'dumbo']
  • split('bojjus,guchus,dumbo', '|') -> ['bojjus,guchus,dumbo']
  • split('bojjus, guchus, dumbo', ', ') -> ['bojjus', 'guchus', 'dumbo']
  • split('bojjus, guchus, dumbo', ', ')[1] -> 'bojjus'
  • isNull(split('bojjus, guchus, dumbo', ', ')[0]) -> true
  • isNull(split('bojjus, guchus, dumbo', ', ')[20]) -> true
  • split('bojjusguchusdumbo', ',') -> ['bojjusguchusdumbo']

sqrt

sqrt(<value1> : number) => double

Menghitung akar kuadrat angka.

  • sqrt(9) -> 3

startsWith

startsWith(<string> : string, <substring to check> : string) => boolean

Memeriksa apakah untai dimulai dengan untai yang disediakan.

  • startsWith('dumbo', 'du') -> true

stddev

stddev(<value1> : number) => double

Mendapatkan simpangan baku kolom.

  • stdDev(sales)

stddevIf

stddevIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, simpangan baku kolom akan diperoleh.

  • stddevIf(region == 'West', sales)

stddevPopulation

stddevPopulation(<value1> : number) => double

Mendapatkan simpangan baku populasi kolom.

  • stddevPopulation(sales)

stddevPopulationIf

stddevPopulationIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, simpangan baku populasi kolom akan diperoleh.

  • stddevPopulationIf(region == 'West', sales)

stddevSample

stddevSample(<value1> : number) => double

Mendapatkan contoh simpangan baku kolom.

  • stddevSample(sales)

stddevSampleIf

stddevSampleIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, contoh simpangan baku kolom akan diperoleh.

  • stddevSampleIf(region == 'West', sales)

subDays

subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime

Mengurangi hari dari tanggal atau tanda waktu. Sama seperti operator - untuk tanggal.

  • subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')

subMonths

subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime

Mengurangi bulan dari tanggal atau tanda waktu.

  • subMonths(toDate('2016-09-30'), 1) -> toDate('2016-08-31')

substring

substring(<string to subset> : string, <from 1-based index> : integral, [<number of characters> : integral]) => string

Mengekstrak substring dengan panjang tertentu dari posisi. Posisi berbasis 1. Jika panjang dihilangkan, panjangnya diatur ke default ke akhir karakter.

  • substring('Cat in the hat', 5, 2) -> 'in'
  • substring('Cat in the hat', 5, 100) -> 'in the hat'
  • substring('Cat in the hat', 5) -> 'in the hat'
  • substring('Cat in the hat', 100, 100) -> ''

substringIndex

substringIndex(<string ke subset><pemisah>substringIndex( : string, : string, <jumlah kejadian pemisah> : integral]) => string

Mengekstrak substring sebelum kejadian pemisah count. Jika count positif, semua yang ada di sebelah kiri pembatas akhir (dihitung dari kiri) dikembalikan. Jika count negatif, semua yang ada di sebelah kanan pembatas akhir (dihitung dari kanan) dikembalikan.

  • substringIndex('111-222-333', '-', 1) -> '111'
  • substringIndex('111-222-333', '-', 2) -> '111-222'
  • substringIndex('111-222-333', '-', -1) -> '333'
  • substringIndex('111-222-333', '-', -2) -> '222-333'

sum

sum(<value1> : number) => number

Mendapatkan jumlah agregat kolom numerik.

  • sum(col)

sumDistinct

sumDistinct(<value1> : number) => number

Mendapatkan jumlah agregat nilai berbeda dari kolom numerik.

  • sumDistinct(col)

sumDistinctIf

sumDistinctIf(<value1> : boolean, <value2> : number) => number

Berdasarkan kriteria, jumlah agregat kolom numerik akan diperoleh. Kondisi ini dapat didasarkan pada kolom apa pun.

  • sumDistinctIf(state == 'CA' && commission < 10000, sales)
  • sumDistinctIf(true, sales)

sumIf

sumIf(<value1> : boolean, <value2> : number) => number

Berdasarkan kriteria, jumlah agregat kolom numerik akan diperoleh. Kondisi ini dapat didasarkan pada kolom apa pun.

  • sumIf(state == 'CA' && commission < 10000, sales)
  • sumIf(true, sales)

T

tan

tan(<value1> : number) => double

Menghitung nilai tangen.

  • tan(0) -> 0.0

tanh

tanh(<value1> : number) => double

Menghitung nilai tangen hiperbolik.

  • tanh(0) -> 0.0

toBase64

toBase64(<value1> : string, <encoding type> : string]) => string

Mengkodekan untai yang diberikan dalam base64. Anda dapat secara opsional melewatkan jenis pengkodean

  • toBase64('bojjus') -> 'Ym9qanVz'
  • toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='

toBinary

toBinary(<value1> : any) => binary

Mengonversi setiap numerik/tanggal/tanda waktu/untai ke representasi biner.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Mengonversi nilai ('t', 'true', 'y', 'ya', '1') ke true dan ('f', 'false', 'n', 'tidak', '0') ke false dan NULL untuk semua nilai lainnya.

  • toBoolean('true') -> true
  • toBoolean('n') -> false
  • isNull(toBoolean('truthy')) -> true

toByte

toByte(<value> : any, [<format> : string], [<locale> : string]) => byte

Mengonversi numerik atau untai apa pun menjadi nilai byte. Format desimal Java opsional dapat digunakan untuk konversi.

  • toByte(123)
  • 123
  • toByte(0xFF)
  • -1
  • toByte('123')
  • 123

toDate

toDate(<string> : any, [<date format> : string]) => date

Mengonversi untai tanggal input menjadi tanggal menggunakan format tanggal input opsional. Lihat kelas SimpleDateFormat Java untuk menemukan format yang tersedia. Jika format tanggal input dihilangkan, format default-nya adalah yyyy-[M]M-[d]d. Format yang diterima adalah :[ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ].

  • toDate('2012-8-18') -> toDate('2012-08-18')
  • toDate('12/18/2012', 'MM/dd/yyyy') -> toDate('2012-12-18')

toDecimal

toDecimal(<value> : any, [<precision> : integral], [<scale> : integral], [<format> : string], [<locale> : string]) => decimal(10,0)

Mengonversi numerik atau untai apa pun menjadi nilai desimal. Jika presisi dan skala tidak ditentukan, maka diubah akan default ke (10,2). Format desimal Java opsional dapat digunakan untuk konversi. Format lokal opsional dalam bentuk bahasa komputer BCP47 seperti en-US, de, zh-CN.

  • toDecimal(123.45) -> 123.45
  • toDecimal('123.45', 8, 4) -> 123.4500
  • toDecimal('$123.45', 8, 4,'$###.00') -> 123.4500
  • toDecimal('Ç123,45', 10, 2, 'Ç###,##', 'de') -> 123.45

toDouble

toDouble(<value> : any, [<format> : string], [<locale> : string]) => double

Mengonversi numerik atau untai apa pun menjadi nilai ganda. Format desimal Java opsional dapat digunakan untuk konversi. Format lokal opsional dalam bentuk bahasa komputer BCP47 seperti en-US, de, zh-CN.

  • toDouble(123.45) -> 123.45
  • toDouble('123.45') -> 123.45
  • toDouble('$123.45', '$###.00') -> 123.45
  • toDouble('Ç123,45', 'Ç###,##', 'de') -> 123.45

toFloat

toFloat(<value> : any, [<format> : string], [<locale> : string]) => float

Mengonversi numerik atau untai apa pun menjadi nilai float. Format desimal Java opsional dapat digunakan untuk konversi. Memotong setiap ganda.

  • toFloat(123.45) -> 123.45f
  • toFloat('123.45') -> 123.45f
  • toFloat('$123.45', '$###.00') -> 123.45f

toInteger

toInteger(<value> : any, [<format> : string], [<locale> : string]) => integer

Mengonversi numerik atau untai apa pun menjadi nilai bilangan bulat. Format desimal Java opsional dapat digunakan untuk konversi. Memotong setiap panjang, float, ganda.

  • toInteger(123) -> 123
  • toInteger('123') -> 123
  • toInteger('$123', '$###') -> 123

toLong

toLong(<value> : any, [<format> : string], [<locale> : string]) => long

Mengonversi numerik atau untai apa pun menjadi nilai panjang. Format desimal Java opsional dapat digunakan untuk konversi. Memotong setiap float, ganda.

  • toLong(123) -> 123
  • toLong('123') -> 123
  • toLong('$123', '$###') -> 123

topN

topN(<column/expression> : any, <count> : long, <n> : integer) => array

Mendapatkan nilai N teratas untuk kolom ini berdasarkan argumen hitungan.

  • topN(custId, count, 5)
  • topN(productId, num_sales, 10)

toShort

toShort(<value> : any, [<format> : string], [<locale> : string]) => short

Mengonversi numerik atau untai apa pun menjadi nilai pendek. Format desimal Java opsional dapat digunakan untuk konversi. Memotong nilai bilangan bulat, panjang, float, ganda.

  • toShort(123) -> 123
  • toShort('123') -> 123
  • toShort('$123', '$###') -> 123

toString

toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string

Mengonversi jenis data primitif menjadi untai. Untuk angka dan tanggal, format dapat ditentukan. Jika default sistem yang tidak ditentukan dipilih, format desimal java akan digunakan untuk angka. Lihat SimpleDateFormat Java untuk semua kemungkinan format tanggal; format default-nya adalah yyyy-MM-dd. Untuk tanggal atau stempel waktu lokal dapat ditentukan secara opsional.

  • toString(10) -> '10'
  • toString('engineer') -> 'engineer'
  • toString(123456.789, '##,###.##') -> '123,456.79'
  • toString(123.78, '000000.000') -> '000123.780'
  • toString(12345, '##0.#####E0') -> '12.345E3'
  • toString(toDate('2018-12-31')) -> '2018-12-31'
  • isNull(toString(toDate('2018-12-31', 'MM/dd/yy'))) -> true
  • toString(4 == 20) -> 'false'
  • toString(toDate('12/31/18', 'MM/dd/yy', 'es-ES'), 'MM/dd/yy', 'de-DE')

toTimestamp

toTimestamp(<string> : any, [<timestamp format> : string], [<time zone> : string]) => timestamp

Mengonversi untai menjadi tanda waktu yang diberi format tanda waktu opsional. Jika tanda waktu dihilangkan, pola default yyyy-[M]M-[d]d hh:mm:ss[.f...] akan digunakan. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Tanda waktu mendukung hingga akurasi milidetik dengan nilai 999. Lihat kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • toTimestamp('2016-12-31 00:12:00') -> toTimestamp('2016-12-31 00:12:00')
  • toTimestamp('2016-12-31T00:12:00', 'yyyy-MM-dd\'T\'HH:mm:ss', 'PST') -> toTimestamp('2016-12-31 00:12:00')
  • toTimestamp('12/31/2016T00:12:00', 'MM/dd/yyyy\'T\'HH:mm:ss') -> toTimestamp('2016-12-31 00:12:00')
  • millisecond(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871

toUTC

toUTC(<value1> : timestamp, [<value2> : string]) => timestamp

Mengonversi tanda waktu menjadi UTC. Anda dapat melewati zona waktu opsional dalam bentuk 'GMT', 'PST', 'UTC', 'Amerika Serikat/Cayman'. Menerapkan mode default ke zona waktu saat ini. Lihat kelas SimpleDateFormat Java untuk menemukan format yang tersedia. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • toUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
  • toUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true

translate

translate(<string to translate> : string, <lookup characters> : string, <replace characters> : string) => string

Ganti sekumpulan karakter dengan sekumpulan karakter lainnya dalam untai. Karakter memiliki penggantian 1 hingga 1.

  • translate('(bojjus)', '()', '[]') -> '[bojjus]'
  • translate('(gunchus)', '()', '[') -> '[gunchus'

trim

trim(<string to trim> : string, [<trim characters> : string]) => string

Memangkas untai karakter depan dan belakang. Jika tidak ditentukan, parameter kedua akan memangkas spasi putih. Selain itu, karakter apa pun yang ditentukan dalam parameter kedua akan dipangkas.

  • trim(' dumbo ') -> 'dumbo'
  • trim('!--!du!mbo!', '-!') -> 'dumbo'

true

true() => boolean

Selalu menampilkan nilai true. Gunakan fungsi syntax(true()) jika ada kolom bernama 'null'.

  • (10 + 20 == 30) -> true
  • (10 + 20 == 30) -> true()

typeMatch

typeMatch(<type> : string, <base type> : string) => boolean

Cocok dengan jenis kolom. Hanya dapat digunakan dalam ekspresi pola. Angka cocok dengan kecocokan pendek, bilangan bulat, panjang, ganda, mengambang atau desimal, kecocokan integral pendek, bilangan bulat, panjang, pencocokan pecahan ganda, float, desimal dan tanggalwaktu cocok tanggal atau jenis tanda waktu.

  • typeMatch(type, 'number')
  • typeMatch('date', 'datetime')

U

unescape

unescape(<string_to_escape> : string, <format> : string) => string

Tidak mengabaikan untai sesuai dengan format. Nilai literal untuk format yang dapat diterima meliputi 'json', 'xml', 'ecmascript', 'html', 'java'.

  • unescape('{\\\\\"value\\\\\": 10}', 'json')
  • '{\\\"value\\\": 10}'

unfold

unfold (<value1>: array) => any

Membuka array ke dalam satu set baris dan mengulangi nilai untuk kolom yang tersisa.

  • unfold(addresses) => any
  • unfold( @(name = salesPerson, sales = salesAmount) ) => any

unhex

unhex(<value1>: string) => binary

Membatalkan heksa nilai biner dari representasi untainya. Hal ini dapat digunakan dengan sha2, md5 untuk mengubah dari string ke representasi biner

  • unhex('1fadbe') -> toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])
  • unhex(md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))) -> toBinary([toByte(0x4c),toByte(0xe8),toByte(0xa8),toByte(0x80),toByte(0xbd),toByte(0x62),toByte(0x1a),toByte(0x1f),toByte(0xfa),toByte(0xd0),toByte(0xbc),toByte(0xa9),toByte(0x05),toByte(0xe1),toByte(0xbc),toByte(0x5a)])

union

union(<value1>: array, <value2> : array) => array

Mengembalikan satu set item yang berbeda dari 2 larik.

  • union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]

upper

upper(<value1> : string) => string

Membuat huruf besar pada untai.

  • upper('bojjus') -> 'BOJJUS'

uuid

uuid() => string

Menampilkan UUID yang dihasilkan.

  • uuid()

V

variance

variance(<value1> : number) => double

Mendapatkan varian kolom.

  • variance(sales)

varianceIf

varianceIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, varian kolom akan diperoleh.

  • varianceIf(region == 'West', sales)

variancePopulation

variancePopulation(<value1> : number) => double

Mendapatkan varian populasi kolom.

  • variancePopulation(sales)

variancePopulationIf

variancePopulationIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, varian populasi kolom akan diperoleh.

  • variancePopulationIf(region == 'West', sales)

varianceSample

varianceSample(<value1> : number) => double

Mendapatkan varian kolom yang tidak bias.

  • varianceSample(sales)

varianceSampleIf

varianceSampleIf(<value1> : boolean, <value2> : number) => double

Berdasarkan kriteria, varian kolom yang tidak bias akan diperoleh.

  • varianceSampleIf(region == 'West', sales)

W

weekOfYear

weekOfYear(<value1> : datetime) => integer

Mendapatkan minggu dalam setahun yang diberikan tanggal.

  • weekOfYear(toDate('2008-02-20')) -> 8

weeks

weeks(<value1> : integer) => long

Durasi dalam milidetik untuk jumlah minggu.

  • weeks(2) -> 1209600000L

X

xor

xor(<value1> : boolean, <value2> : boolean) => boolean

Operator logika XOR. Sama seperti operator ^.

  • xor(true, false) -> true
  • xor(true, true) -> false
  • true ^ false -> true

Y

year

year(<value1> : datetime) => integer

Mendapatkan nilai tahun dari tanggal.

  • year(toDate('2012-8-8')) -> 2012