Cómo convertir JSON a formato de tabla en Snowflake
Tengo una tabla externa INVEXT_TBL (1 columna variante llamada “VALUE”) en Snowflake y tiene 6000 filas (cada fila es un archivo JSON). El registro JSON tiene comillas dobles ya que está en formato dynamo_json.
¿Cuál es el mejor enfoque para analizar todos los archivos JSON y convertirlos en formato de tabla para ejecutar consultas SQL? He dado un ejemplo del formato de solo los primeros 3 archivos JSON.
"{
""Item"": {
""sortKey"": {
""S"": ""DR-1630507718""
},
""vin"": {
""S"": ""1FMCU9GD2JUA29""
}
}
}"
"{
""Item"": {
""sortKey"": {
""S"": ""affc5dd0875c-1630618108496""
}
},
""vin"": {
""S"": ""SALCH625018""
}
}
}"
"{
""Item"": {
""sortKey"": {
""S"": ""affc5dd0875c-1601078453607""
},
""vin"": {
""S"": ""KL4CB018677""
}
}
}"
He creado una tabla local e inserté datos en ella desde una tabla externa mediante una conversión de tipo de dato. ¿Es este enfoque correcto o debo usar la función parse_json para almacenar los datos en una tabla local?
create or replace table DB.SCHEMA.INV_HIST(VIN VARCHAR(16777216), SORTKEY VARCHAR(16777216));
insert into DB.SCHEMA.INV_HIST(VIN,SORTKEY)
(SELECT value:Item.vin.S::string AS VIN, value:Item.sortKey.S::string AS SORTKEY FROM INV_EXT_TBL);
davy.ai
Como experto en TI especializado en la plataforma de datos en la nube Snowflake y el Esquema de Snowflake, recomiendo utilizar la función PARSE_JSON para transformar los archivos JSON en formato de tabla.
El uso de la función PARSE_JSON puede ayudar a deserializar los documentos JSON en datos relacionales que pueden ser consultados y analizados fácilmente mediante consultas SQL. Este enfoque también puede manejar cualquier posible variación en el formato o estructura de JSON.
Aquí hay un ejemplo de cómo utilizar la función PARSE_JSON para extraer los valores VIN y SORTKEY de los documentos JSON y almacenarlos en una nueva tabla:
Este fragmento de código crea una nueva tabla
INV_HIST
con dos columnasVIN
ySORTKEY
, y utilizaPARSE_JSON
para extraer los valores VIN y SORTKEY de los documentos JSON y transformarlos en datos relacionales. La funciónJSON_VALUE
se utiliza para extraer valores específicos de los objetos JSON analizados.En general, el uso de la función
PARSE_JSON
proporciona una solución mucho más flexible y eficiente para analizar datos JSON en Snowflake en comparación con la conversión manual de tipos de datos.