Extração de dados do json usando sql - mysql e bigquery

Olá pessoal boa tarde, estou com um problema a resolver preciso fazer a extração de alguns dados que estão em formato JSON usando o BIGQUERY, tenho uma query pronta que é usada para essa extração no MySQL porém não acha funções equivalentes para rodar no BQ, será que alguém conseguiria me ajudar, vou colocar a query usada no MySQL.

select

p.document as 'Documento (CPF/CNPJ)' ,

r.created,

replace (JSON_EXTRACT(s.doc, '$.CARTAS' ), '"' , '' ) AS Cartas,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '1' , null , '$**.Priority' )), 'Priority' , 'Catalog' ))) as Lampada_1,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '2' , null , '$**.Priority' )), 'Priority' , 'Catalog' ))) as Lampada_2,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '3' , null , '$**.Priority' )), 'Priority' , 'Catalog' ))) as Lampada_3,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '1' , null , '$**.Priority' )), 'Priority' , 'Name' ))) as Premio_1,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '2' , null , '$**.Priority' )), 'Priority' , 'Name' ))) as Premio_2,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '3' , null , '$**.Priority' )), 'Priority' , 'Name' ))) as Premio_3,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '1' , null , '$**.Priority' )), 'Priority' , 'Sku' ))) as Sku_1,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '2' , null , '$**.Priority' )), 'Priority' , 'Sku' ))) as Sku_2,

JSON_UNQUOTE(JSON_EXTRACT(r.informations, replace (JSON_UNQUOTE(JSON_SEARCH(r.informations, 'one' , '3' , null , '$**.Priority' )), 'Priority' , 'Sku' ))) as Sku_3,

replace (JSON_EXTRACT(s.doc, '$.LAMPADA' ), '"' , '' ) AS Lampada_disponivel,

upper (st.description) as Fase

from

MULTI_CAMPAIGN_VIEW.Participant p

inner join

MULTI_CAMPAIGN_VIEW.Redemption r

on r.participant_id = p.participant_id

inner join

MULTI_CAMPAIGN_VIEW.Participant_Stage_Status_Json s

on s.campaign_stage_id = r.campaign_stage_id

and p.participant_id = s.participant_id

inner join

MULTI_CAMPAIGN_VIEW.Campaign_Stage st

on st.campaign_stage_id = s.campaign_stage_id

where

p.campaign_id = '55854265-c7b7-4f98-a130-ef6019303180'

se alguém conseguisse me ajudar, pois o BQ não reconhece as funções JSON_UNQUOTE E JSON_SEARCH

2 Curtidas

@Bruna_Barros, seja muito bem-vinda à Blip Community! Fique à vontade para visitar esse espaço sempre que quiser, seja para tirar dúvidas ou compartilhar experiências.

Sobre esse probleminha, eu não vou conseguir te ajudar, mas sei de algumas pessoas que podem fazer isso. Vou marcá-las aqui e ver se alguém tem uma solução, combinado? @fadoaglauss @GabrielPetrone

Olá @Bruna_Barros , seja bem vinda à community!!

Você pode compartilhar o JSON que está utilizando? Recomendo alterar os dados reais (LGPD tá aí, né?), porém mantendo a estrutura.

1 Curtida