We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


Unable to load Json data to Vertica Flex Table — Vertica Forum

Unable to load Json data to Vertica Flex Table

Hi,

 

I am trying to load some really complex JSON data to a vertica flex table but for some reason the data is not getting load. I have two rows results.JSON file first row is slighly simple which is loading but second one which is slightly more complex is getting loaded as null. Cany you please help?

I am trying below.

 

create Flex Table Start_Json();
copy Start_Json From Local 'C:\Vehicle Results\results.json' parser fjsonparser();

SELECT maptostring(__raw__) FROM start_json;

 

I have attached my JSON file for your reference.

 

Thanks,

Prav

 

Comments

  • Hi!

     

    I successfully loaded both rows.

     

    1. Can you post your environment?

    2. Try to upload file on Vertica host(if you can) and do a COPY(not COPY LOCAL).

  • Hi,

     

    Unfortunaterly I dont have access to upload file to the server so I am running from Local.

     

    I am running my sql statements using Aquastudio connecting to Vertica database. Do you think running from local is the reason for error?

     

    Thanks,

    Prav

  • Hi!

     

     

    Hm... sorry, I just checked one more time its problem in maptostring function. Actually 2 rows loaded, but maptostring(__raw__) returns a second string as NULL.

     

    You can validate it by yourself:

     

    => select eventVersion, eventId from start_json;
     eventVersion |               eventId               
    --------------+--------------------------------------
     1.0.0        | 751569df-f71d-4610-8131-e89ec5b7a33a
     1.0.0        | e7f6273a-76dc-4426-a219-b4d5ca92aaf5
    (2 rows)

     

     

    => SELECT row_number() over () ,  __raw__::varbinary(10) FROM start_json;
     ?column? |                 __raw__                 
    ----------+------------------------------------------
            1 | \001\000\000\000\332\021\000\000\016\000
            2 | \001\000\000\000\305^\001\000\016\000
    (2 rows)

  • Hi Thanks a lot thats very useful but i have one more question on how can i extract data from nested json.

     

     

    For example how can i extract data for "0.apply.desktop"

    "body.results.results" : {
    "0.apply.active" : "F",
    "0.apply.desktop" : "T",

    I tried select "body.results.results.0.apply.desktop" from start_json and it returns 2 rows with null value.

  • Hi!

     

    daniel=> select maplookup(maplookup(__raw__, 'body.results.results'), '0.apply.desktop') from start_json;
     maplookup
    -----------
     T
     T
    (2 rows)

    daniel=> select maplookup(maplookup(__raw__, 'body.results.results'), '0.apply.active') from start_json;
     maplookup
    -----------
     F
     T
    (2 rows)

  • That works beautifully..you are a star!!

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file