Etapa 2. Consultar dados¶
Nesta seção, você explorará as instruções SELECT para consultar os dados JSON.
Recupere
device_type
.SELECT src:device_type FROM raw_source;
A consulta retorna o seguinte resultado:
+-----------------+ | SRC:DEVICE_TYPE | |-----------------| | "server" | +-----------------+
A consulta usa a notação
src:device_type
para especificar o nome da coluna e o nome do elemento JSON a ser recuperado. Esta notação é semelhante à conhecida notação SQLtable.column
. Snowflake permite especificar uma subcoluna dentro de uma coluna principal, que o Snowflake deriva dinamicamente da definição do esquema integrado nos dados JSON. Para obter mais informações, consulte Consulta de dados semiestruturados.Nota
O nome da coluna não diferencia maiúsculas de minúsculas, porém os nomes do elemento JSON diferenciam maiúsculas e minúsculas.
Recupere o valor
device_type
sem as aspas.A consulta anterior retorna o valor dos dados JSON entre aspas. Você pode remover as aspas convertendo os dados em um tipo de dados específico, neste exemplo uma cadeia de caracteres.
Esta consulta também atribui opcionalmente um nome à coluna usando um alias.
SELECT src:device_type::string AS device_type FROM raw_source;
A consulta retorna o seguinte resultado:
+-------------+ | DEVICE_TYPE | |-------------| | server | +-------------+
Recupere as chaves repetidas
f
aninhadas dentro dos objetos de eventos da matriz.Os dados da amostra JSON incluem a matriz
events
. Cada objeto de evento na matriz tem o campof
como mostrado.{ "device_type": "server", "events": [ { "f": 83, .. } { "f": 1000083, .. } ]}
Para recuperar estas chaves aninhadas, você pode usar a função FLATTEN. A função nivela os eventos em linhas separadas.
SELECT value:f::number FROM raw_source , LATERAL FLATTEN( INPUT => SRC:events );
A consulta retorna o seguinte resultado:
+-----------------+ | VALUE:F::NUMBER | |-----------------| | 83 | | 1000083 | +-----------------+
Observe que
value
é uma das colunas que a função FLATTEN retorna. O próximo passo fornece mais detalhes sobre o uso da função FLATTEN.
Próximo: Etapa 3. Nivelar dados