Snowflake'te kullanıcı tanımlı fonksiyonlar (UDF)

Snowflake'te Veri Türleri ve Fonksiyonlar

Jake Roach

Field Data Engineer

Kullanıcı tanımlı fonksiyonlar (UDF) nedir?

Karmaşık mantığı tek, yeniden kullanılabilir bir fonksiyonda “paketleyin”

$$

  • Okuması daha kolay
  • Hata olasılığını azaltır
  • Mantığı başkalarıyla paylaşın

$$

$$

                      ... daha yakından bakalım!

Kullanıcı tanımlı fonksiyon fikrini gösteren görsel.

Snowflake'te Veri Türleri ve Fonksiyonlar

Bir UDF ile kodu yeniden düzenleme

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,

-- Yeniden kullanılabilir, okunması kolay build_email_address( first_name, last_name, school_name ) AS email_address
FROM STUDENTS.personal_info;
Snowflake'te Veri Türleri ve Fonksiyonlar

Bir UDF tanımlama

CREATE OR REPLACE FUNCTION <name> (

-- Argümanları ve tiplerini belirtin <arg1> <type1>, <arg2> <type2>, ... )
RETURN <type> -- Dönen tip
AS $$ -- Fonksiyonunuzu burada tanımlayın $$

$$

$$

  1. CREATE OR REPLACE FUNCTION
  2. Bir fonksiyon adı verin
  3. Parantez içinde her argümanın adını ve tipini belirtin
  4. RETURN tipini bildirin
  5. Mantığınızı $$ ... $$ içinde tanımlayın!
Snowflake'te Veri Türleri ve Fonksiyonlar

E-posta adresi oluşturma

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') $$;
Snowflake'te Veri Türleri ve Fonksiyonlar

Bir UDF kullanma

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]
Snowflake'te Veri Türleri ve Fonksiyonlar

Hadi pratik yapalım!

Snowflake'te Veri Türleri ve Fonksiyonlar

Preparing Video For Download...