सेमी-स्ट्रक्चर्ड डेटा हैंडल करना

Snowflake SQL परिचय

George Boorman

Senior Curriculum Manager, DataCamp

स्ट्रक्चर्ड बनाम सेमी-स्ट्रक्चर्ड

स्ट्रक्चर्ड डेटा का उदाहरण

| cust_id | cust_name | cust_age | cust_email            |
|---------|-----------|----------|-----------------------|
| 1       | cust1     | 40       | cust1***@gmail.com    |
| 2       | cust2     | 35       | cust2***@gmail.com    |
| 3       | cust3     | 42       | cust3***@gmail.com    |

सेमी-स्ट्रक्चर्ड डेटा का उदाहरण

JSON रूप में ग्राहक का सेमी-स्ट्रक्चर्ड डेटा, जहाँ ग्राहक 2 के दो ईमेल हैं

Snowflake SQL परिचय

JSON परिचय

  • JavaScript Object Notation
  • आम उपयोग: Web APIs और Config फाइलें
  • JSON डेटा स्ट्रक्चर:
    • Key-Value Pairs, जैसे cust_id: 1

कस्टमर JSON रिकॉर्ड्स का उदाहरण, जिसमें id, name, age और email हैं

Snowflake SQL परिचय

Snowflake में JSON

  • नैटिव JSON सपोर्ट
  • बदलती स्कीमा के लिए लचीला

 

तुलना:

  • Postgres: JSONB उपयोग करता है
  • Snowflake: VARIANT उपयोग करता है
Snowflake SQL परिचय

Snowflake JSON डेटा कैसे स्टोर करता है

  • VARIANT OBJECT और ARRAY डेटा टाइप्स सपोर्ट करता है
    • OBJECT: { "key": "value"}
    • ARRAY: ["list", "of", "values"]
  • JSON डेटा हैंडल करने के लिए Snowflake टेबल बनाना
    CREATE TABLE cust_info_json_data (
      customer_id INT, 
      customer_info VARIANT -- VARIANT data type
    );
    
Snowflake SQL परिचय

सेमी-स्ट्रक्चर्ड डेटा फंक्शंस

  • PARSE_JSON

    • expr: स्ट्रिंग फॉर्मेट में JSON डेटा
    • Returns: VARIANT टाइप, वैध JSON ऑब्जेक्ट
Snowflake SQL परिचय

PARSE_JSON

उदाहरण:

SELECT PARSE_JSON(
  -- Enclosed in strings      
  '{
  "cust_id": 1,
  "cust_name": "cust1",
  "cust_age": 40,
  "cust_email":"cust1***@gmail.com"
  }
  '-- Enclosed in strings
) AS customer_info_json

PARSE_JSON का परिणाम

Snowflake SQL परिचय

OBJECT_CONSTRUCT

  • OBJECT_CONSTRUCT

    • Syntax: OBJECT_CONSTRUCT( [<key1>, <value1> [, <keyN>, <valueN> ...]] )
    • Returns: JSON ऑब्जेक्ट
    SELECT OBJECT_CONSTRUCT(
      -- Comma separated values rather than : notation
          'cust_id', 1,
          'cust_name', 'cust1',
          'cust_age', 40,
          'cust_email', 'cust1***@gmail.com'
    )

`customer_info` कॉलम वाली टेबल, जिसमें डेटा JSON फॉर्मेट में स्टोर है

Snowflake SQL परिचय

Snowflake में JSON डेटा क्वेरी करना

साधारण JSON

  • :
    SELECT
      customer_info:cust_age, -- कॉलम से cust_age पाने के लिए कोलन उपयोग करें
      customer_info:cust_name,
      customer_info:cust_email,
    FROM 
      cust_info_json_data;
    

क्वेरी परिणाम, जिसमें age, name और email अलग कॉलम्स में हैं

Snowflake SQL परिचय

Snowflake में नेस्टेड JSON क्वेरी करना

नेस्टेड JSON का उदाहरण

नेस्टेड JSON डेटा, जहाँ address एक ऑब्जेक्ट है जिसमें street, city और state key-value pairs हैं

  • कोलन: :
  • डॉट: .
Snowflake SQL परिचय

कोलन/डॉट नोटेशन से नेस्टेड JSON क्वेरी करना

कोलन नोटेशन से वैल्यू एक्सेस करना

<column>:<level1_element>:<level2_element>:<level3_element>

SELECT 
    customer_info:address:street AS street_name 
FROM 
    cust_info_json_data

street_name दिखाने वाला क्वेरी परिणाम

डॉट नोटेशन से वैल्यू एक्सेस करना

<column>:<level1_element>.<level2_element>.<level3_element>

SELECT
    customer_info:address.street AS street_name
FROM
    cust_info_json_data

street_name दिखाने वाला क्वेरी परिणाम

Snowflake SQL परिचय

अभ्यास करते हैं!

Snowflake SQL परिचय

Preparing Video For Download...