Fungsi buatan pengguna di Snowflake

Tipe Data dan Fungsi di Snowflake

Jake Roach

Field Data Engineer

Apa itu fungsi buatan pengguna (UDF)?

"Kemas" logika kompleks menjadi satu fungsi yang dapat digunakan ulang

$$

  • Lebih mudah dibaca
  • Mengurangi risiko kesalahan
  • Dapat berbagi logika dengan orang lain

$$

$$

                      ... mari kita lihat lebih dekat!

Gambar yang menunjukkan konsep fungsi buatan pengguna.

Tipe Data dan Fungsi di Snowflake

Refactor kode dengan UDF

SELECT
    first_name, last_name, school_name,

    CONCAT(
        first_name,
        '.',
        last_name,
        '@',
        school_name,
        '.com'
    )

FROM STUDENTS.personal_info;
SELECT
    first_name, 
    last_name, 
    school_name,

-- Dapat digunakan ulang, mudah dibaca build_email_address( first_name, last_name, school_name ) AS email_address
FROM STUDENTS.personal_info;
Tipe Data dan Fungsi di Snowflake

Mendefinisikan UDF

CREATE OR REPLACE FUNCTION <name> (

-- Tentukan argumen dan tipe <arg1> <type1>, <arg2> <type2>, ... )
RETURN <type> -- Deklarasikan tipe keluaran
AS $$ -- Definisikan fungsi Anda di sini $$

$$

$$

  1. CREATE OR REPLACE FUNCTION
  2. Beri nama fungsi
  3. Dalam tanda kurung, tentukan nama dan tipe tiap argumen
  4. Deklarasikan tipe RETURN
  5. Tulis logika di $$ ... $$!
Tipe Data dan Fungsi di Snowflake

Membangun alamat email

CREATE OR REPLACE FUNCTION build_email_address(

first_name TEXT, last_name TEXT, school_name TEXT
)
RETURN TEXT
AS $$ CONCAT(LOWER(first_name), '.', LOWER(last_name), '@', LOWER(school_name), '.com') $$;
Tipe Data dan Fungsi di Snowflake

Menggunakan UDF

SELECT
    first_name, last_name, school_name,
    build_email_address(first_name, last_name, school_name) AS email_address

FROM STUDENTS.personal_info;
      first_name  |  last_name  |  school_name  |        email_address
     ------------ | ----------- | ------------- | ----------------------------
       Ryan       |  Cohen      |  Harvard      |  [email protected]
       Tatiana    |  Doyle      |  Stanford     |  [email protected]
       Pankaj     |  Pandey     |  MIT          |  [email protected]
       Jake       |  Roach      |  Purdue       |  [email protected]
Tipe Data dan Fungsi di Snowflake

Ayo berlatih!

Tipe Data dan Fungsi di Snowflake

Preparing Video For Download...