Snowflake'te Veri Türleri ve Fonksiyonlar
Jake Roach
Field Data Engineer
school_id | school_name | street_number | street_name | suffix | city | zip_code
----------- | ----------------- | --------------- | ------------- | --------- | -------------- | ----------
s_19219 | West Aurora HS | 879 | Main | St. | West Aurora | 25041
s_77465 | Springtown HS | 1645 | Cherry | Rd. | Springtown | 14556
school_id | address_info
----------- | ------------------------------------------
s_19219 | {
| "school_name": "West Aurora HS",
| "address": {
| "street_number": 879,
| "street_name": "Main",
| "suffix": "St."
| "city": "West Aurora",
| "zip_code": 25041
| }
| }
Süslü parantezlerle anahtar-değer çiftlerinde saklanan verinin veri tipi VARIANT olur
{
"school_name": "West Aurora HS",
"address": { -- Nested object
"street_number": 879,
"street_name": "Main",
"suffix": "St.",
"city": "West Aurora",
"zip_code": 25041
}
}
$$
$$
$$
address gibi nesneler iç içe olabilir my_column
-------------------------------------------
{
"my_first_key": 2025,
"my_second_key": {
"a": "alpha",
"b": "bravo"
}
}
SELECTmy_column:my_first_key -- Üst düzeymy_column:my_second_key.a -- İç içe my_column:my_second_key.b -- İç içe...
VARIANT veriden üst düzey ve iç içe değerleri almayı kolaylaştırır
$$
<column-name>:<top-level-key> öğelerini ayırır. ekleyin: <column-name>:<top-level-key>.<nested-key> SELECT
address_info:school_name, -- Üst düzey, nokta gösterimi
address_info:address.street_number AS street_number, -- İç içe, nokta gösterimi
address_info:address.street_name AS street_name,
address_info:address.suffix AS suffix
FROM SCHOOLS.school_info;
school_name | street_number | street_name | suffix
----------------- | --------------- | ------------- | ---------
West Aurora HS | 879 | Main | St.
Springtown HS | 1645 | Cherry | Rd.
Üst düzey ve iç içe değerleri getirmek için ek bir teknik sağlar
$$
<column-name>['<top-level-key']['...']') kullanın! my_column
------------------------------------------------
{
"my_first_key": 2025,
my_second_key": {
"a": "alpha",
"b": "bravo"
}
}
SELECTmy_column['my_first_key'], -- Üst düzeymy_column['my_second_key']['a'] -- İç içe my_column['my_second_key']['b'] -- İç içe...
SELECTaddress_info['school_name'], -- Üst düzey, köşeli ayraçaddress_info['address']['city'] AS city, -- İç içe, köşeli ayraç address_info['address']['zip_code'] AS zip_codeFROM SCHOOLS.school_info;
school_name | city | zip_code
----------------- | -------------- | ----------
West Aurora HS | West Aurora | 25041
Springtown HS | Springtown | 14556
SELECT
school_id,
address_info:school_name AS school_name, -- Üst düzey, nokta gösterimi
address_info:address.street_number AS street_number, -- İç içe, nokta gösterimi
address_info:address.street_name AS street_name,
address_info:address.suffix AS suffix,
address_info['address']['city'] AS city, -- İç içe, köşeli ayraç
address_info['address']['zip_code'] AS zip_code
FROM SCHOOLS.school_info;
school_id | address_info
----------- | ------------------------------------------
s_19219 | {
| "school_name": "West Aurora HS",
| "address": {
| "street_number": 879,
| "street_name": "Main",
| "suffix": "St."
| "city": "West Aurora",
| "zip_code": 25041
| }
| }
school_id | school_name | street_number | street_name | suffix | city | zip_code
----------- | ----------------- | --------------- | ------------- | --------- | -------------- | ----------
s_19219 | West Aurora HS | 879 | Main | St. | West Aurora | 25041
s_77465 | Springtown HS | 1645 | Cherry | Rd. | Springtown | 14556
Snowflake'te Veri Türleri ve Fonksiyonlar