Har några stora 100GB json filer som admin läst in från en S3 bucket till en postgresql tabell.
Det hamnar som en lång sträng i en kolumn i db tabellen och i kolumnen söker man med postgresql
När man bygger sql:n ska man studera json schemat och se på hur 'djupt' i strukturen den entitet man behöver är, ska man följa en path, "array", array", "list", "array", "list", "list", etc
array är omsluten av fyrkantparenteser [
list av krulliga parenteser {
Nedan en sträng kopierad från db tabellen, klistrad i notepad++ och formatterat till json:
https://ibb.co/D1HfVHZ
Det fungerar superfint men är enormt tidsödande den resulterande sql kan se ut som t ex:
Kod:
select t2.buildings -> 'areause' as "Anvendelse", t2.buildings ->'areal_weighted' as "areal_weighted"
from (select jsonb_array_elements(t1.ejd_partvalue->'weighted_areal'->'buildings') buildings
from (select jsonb_array_elements(d.databasis->'grundlag'->'buildingproperties'->'property_value') ejd_partvalue
from kst_volatile.eds_document d) t1
) t2;
(Ovanstående behöver inte stämma med bilden det är bara exempel)
Normalt sett blir sql statements mycket stora, ovanstående bara ett litet smakprov.
DET JAG SÖKER ÄR DETTA OCH INGENTING ANNAT.
Jag efterlyser en tool som jag matar med json schema eller json filen (kopierad från db tabellen, jag har inte tillgång till original json filen) och den entiteten jag söker och den returnerar den färdiga sql statement.
Metodiken kan jag, det är den jag tillämpar för att bygga upp sql statement, den skulle jag kunna implementera i py eller vba men jag inbillar mig att det måste finnas färdiga tools för ändamålet.
har googlat såklart.
How to Query a JSON Column in PostgreSQL
https://popsql.com/learn-sql/postgre...-in-postgresql
PostgreSQL JSON
https://www.postgresqltutorial.com/postgresql-json/