2단계. 데이터 쿼리¶
이 섹션에서는 JSON 데이터를 쿼리하는 SELECT 문을 탐색합니다.
device_type
을 검색합니다.SELECT src:device_type FROM raw_source;
쿼리에서 반환되는 결과는 다음과 같습니다.
+-----------------+ | SRC:DEVICE_TYPE | |-----------------| | "server" | +-----------------+
이 쿼리는
src:device_type
표기법을 사용하여 검색할 열 이름과 JSON 요소 이름을 지정합니다. 이 표기법은 익숙한 SQLtable.column
표기법과 유사합니다. Snowflake를 사용하면 Snowflake가 JSON 데이터에 삽입된 스키마 정의에서 동적으로 파생되는 상위 열 내에 하위 열을 지정할 수 있습니다. 자세한 내용은 반정형 데이터 쿼리하기 섹션을 참조하십시오.참고
열 이름은 대/소문자를 구분하지 않지만, JSON 요소 이름은 대/소문자를 구분합니다.
따옴표 없는
device_type
값을 검색합니다.이전의 쿼리는 JSON 데이터 값을 따옴표로 묶어 반환합니다. 데이터를 특정 데이터 타입(이 예제에서는 문자열)으로 캐스팅하여 따옴표를 제거할 수 있습니다.
또한 이 쿼리는 별칭을 사용하여 열에 이름을 선택적으로 할당합니다.
SELECT src:device_type::string AS device_type FROM raw_source;
쿼리에서 반환되는 결과는 다음과 같습니다.
+-------------+ | DEVICE_TYPE | |-------------| | server | +-------------+
배열 이벤트 오브젝트 내에 중첩된 반복
f
키를 검색합니다.샘플 JSON 데이터는
events
배열을 포함합니다. 배열의 각 이벤트 오브젝트에는 표시된 것과 같은f
필드가 있습니다.{ "device_type": "server", "events": [ { "f": 83, .. } { "f": 1000083, .. } ]}
이러한 중첩 키를 검색하려면 FLATTEN 함수를 사용할 수 있습니다. 이 함수는 이벤트를 별도의 행으로 평면화합니다.
SELECT value:f::number FROM raw_source , LATERAL FLATTEN( INPUT => SRC:events );
쿼리에서 반환되는 결과는 다음과 같습니다.
+-----------------+ | VALUE:F::NUMBER | |-----------------| | 83 | | 1000083 | +-----------------+
value
는 FLATTEN 함수가 반환하는 열 중 하나입니다. 다음 단계에서는 FLATTEN 함수 사용에 대해 더 많은 세부 정보를 제공합니다.
다음 항목: 3단계. 데이터 스큐 데이터