Fungsi SQL yang diizinkan

Untuk alasan privasi, kami membatasi fungsi SQL yang dapat Anda gunakan di ADH.

Fungsi skalar

Semua fungsi skalar kecuali yang berikut ini diizinkan:

  • ERROR
  • ST_AREA
  • ST_ASBINARY
  • ST_ASGEOJSON
  • ST_ASTEXT
  • ST_BOUNDARY
  • ST_CENTROID
  • ST_CENTROID_AGG
  • ST_CLOSESTPOINT
  • ST_CLUSTERDBSCAN
  • ST_CONTAINS
  • ST_CONVEXHULL
  • ST_COVEREDBY
  • ST_COVERS
  • ST_DIFFERENCE
  • ST_DIMENSION
  • ST_DISJOINT
  • ST_DISTANCE
  • ST_DUMP
  • ST_DWITHIN
  • ST_EQUALS
  • ST_GEOGFROMGEOJSON
  • ST_GEOGFROMTEXT
  • ST_GEOGFROMWKB
  • ST_GEOGPOINT
  • ST_GEOGPOINTFROMGEOHASH
  • ST_GEOHASH
  • ST_INTERSECTION
  • ST_INTERSECTS
  • ST_INTERSECTSBOX
  • ST_ISCOLLECTION
  • ST_ISEMPTY
  • ST_LENGTH
  • ST_MAKELINE
  • ST_MAKEPOLYGON
  • ST_MAKEPOLYGONORIENTED
  • ST_MAXDISTANCE
  • ST_NPOINTS
  • ST_NUMPOINTS
  • ST_PERIMETER
  • ST_SIMPLIFY
  • ST_SNAPTOGRID
  • ST_TOUCHES
  • ST_UNION
  • ST_UNION_AGG
  • ST_WITHIN
  • ST_X
  • ST_Y

Kueri analisis

Untuk kueri analisis gabungan, kami membatasi fungsi yang menggabungkan data dari beberapa pengguna. Semua fungsi agregat dan analisis diizinkan saat memproses data satu pengguna. Lihat Agregasi tingkat pengguna di bawah untuk mengetahui detailnya.

Fungsi agregat

Fungsi Diizinkan?
ANY_VALUE Ya
APPROX_QUANTILES Tidak
APPROX_TOP_COUNT Tidak
APPROX_TOP_SUM Tidak
ARRAY_AGG Tidak
ARRAY_CONCAT_AGG Tidak
AVG Ya
BIT_AND Tidak
BIT_OR Tidak
BIT_XOR Tidak
COUNT Ya
COUNTIF Ya
LOGICAL_AND Ya
LOGICAL_OR Ya
MAX Ya
MIN Ya
SUM Ya
CORR Ya
COVAR_POP Ya
COVAR_SAMP Ya
STDDEV_POP Ya
STDDEV_SAMP Ya
STDDEV Ya
STRING_AGG Tidak
VAR_POP Ya
VAR_SAMP Ya
VARIANCE Ya
APPROX_COUNT_DISTINCT Ya

Fungsi analisis

Semua fungsi analitik dibatasi.

Fungsi HyperLogLog++

Ads Data Hub mendukung fungsi HyperLogLog++ (HLL++). Namun, mereka menggunakan jenis data khusus dengan batasan lebih banyak.

Jenis yang didukung

Jenis Deskripsi
ADH.USER_HLL Sketsa yang dikumpulkan dari nilai jenis ADH.USER_ID
ADH.BYTE_HLL Sketsa yang dikumpulkan dari nilai jenis non-ID apa pun

Jenis ini mendukung penggabungan dan pengekstrakan ke estimasi kardinalitas, dan tidak mendukung konversi langsung ke jenis lainnya. Kueri tersebut tidak dapat diekspor langsung dari Ads Data Hub, sehingga harus menggunakan HLL_COUNT.EXTRACT atau HLL_COUNT.MERGE sebelum mencapai output kueri.

Sketsa HLL memungkinkan estimasi kardinalitas di berbagai lapisan agregasi, tetapi perhatikan bahwa di Ads Data Hub, sketsa tersebut tidak memberikan peningkatan performa yang signifikan terhadap COUNT(DISTINCT) dalam satu lapisan.

Fungsi yang didukung

Function name Jenis yang didukung Jenis hasil yang ditampilkan
HLL_COUNT.EXTRACT ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.INIT Semua jenis standar yang didukung, ADH.USER_ID ADH.USER_HLL untuk input ADH.USER_ID, jika tidak, ADH.BYTE_HLL
HLL_COUNT.INITNT.MERGE ADH.USER_HLL, ADH.BYTE_HLL INT64
HLL_COUNT.MERGE_PARTIAL ADH.USER_HLL, ADH.BYTE_HLL Sama seperti jenis input

Batasan

Injeksi derau: Fungsi HLL++ tidak didukung saat menjalankan kueri menggunakan injeksi derau.

Agregasi tingkat pengguna

Kita mengizinkan semua fungsi agregat dan analisis dalam pernyataan SELECT yang dikelompokkan atau partisi menurut user_id. Agar hal ini berfungsi, setiap join sebelumnya harus menjelaskan bahwa data disimpan di tingkat pengguna dengan bergabung di user_id, seperti dalam contoh ini:

CREATE TABLE paths AS (
SELECT ARRAY_AGG(campaign_id ORDER BY query_id.time_usec) AS path
FROM
  adh.google_ads_impressions
  LEFT JOIN adh.google_ads_clicks
    USING(query_id, user_id)
GROUP BY user_id)

Kueri daftar pengguna

Dalam kueri daftar pengguna, fungsi agregat diizinkan, dan fungsi analisis tidak didukung.