Handle JSON with dbt // jinja & macros

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ม.ค. 2025

ความคิดเห็น • 28

  • @KahanDataSolutions
    @KahanDataSolutions  3 ปีที่แล้ว

    Want to build a reliable, modern data architecture without the mess?
    Here’s a free checklist to help you → bit.ly/kds-checklist

  • @randolphdeline309
    @randolphdeline309 2 ปีที่แล้ว +3

    I think you just saved me weeks worth of work. I was just put in charge of flattening dozens of tables with multiple levels totaling 100s of columns and that macro is perfect.

  • @peytonbadura6808
    @peytonbadura6808 ปีที่แล้ว

    I had to change a couple of things to get this to work with SQL Server but this was a lifesaver! Thank you!

  • @Mahsa_Faraji
    @Mahsa_Faraji หลายเดือนก่อน

    Thanks for your video. In your code, you've used flatten function. Is it possible to do like this in dbt with postgresql (I know that flatten doesn't exist in postgresql)? or it's better to use other method to flatten json?

  • @vlogwithkaran9078
    @vlogwithkaran9078 ปีที่แล้ว +1

    how do we perform lateral flatten in redshift?

  • @linaelyakhloufi4677
    @linaelyakhloufi4677 2 ปีที่แล้ว +1

    Hello,
    Is it the same if our data is in amazon redshift please?

  • @ihafidh
    @ihafidh 3 ปีที่แล้ว

    Great video as always!

  • @kirillmelnikov1700
    @kirillmelnikov1700 ปีที่แล้ว

    Hi 👋
    How can I write if statement on dbt macros which will be go out loop, for example “if table exists - continue, else: break” ?
    Thx to advanced 🙏

  • @henniedenooijer4348
    @henniedenooijer4348 ปีที่แล้ว

    Great vid!

  • @jasonyeung2498
    @jasonyeung2498 2 ปีที่แล้ว +1

    Might I ask if there was any package that could recursively do what you did in dbt to unwrap nested JSON and / or array? Thanks!

    • @KahanDataSolutions
      @KahanDataSolutions  2 ปีที่แล้ว

      Hey Jason - There very well could be but I'm not familiar off the top of my head. Seems like a common scenario so I wouldn't be surprised if it exists somewhere.

    • @jasonyeung2498
      @jasonyeung2498 2 ปีที่แล้ว +3

      @@KahanDataSolutions Thanks for the kind response.
      Might I ask, for example, let's say birth_name is another JSON. And, I simply want to reuse the marco again.
      intermediate_model as (
      {{ flatten_json(
      model_name = 'source_model',
      json_column = 'birth_name'
      )}}
      ),
      how can I do it here by passing the source_model into the macro again?

  • @brodericksmith8617
    @brodericksmith8617 2 ปีที่แล้ว

    hey there! this video is awesome! do you have any tips on how to turn a variable into a string? I'm trying to take this concept and apply it to Postgres, but i need the column names to be strings to make it work. not sure how to get quotes around the variable name!

  • @kanthipavuluri3874
    @kanthipavuluri3874 2 ปีที่แล้ว

    Nice video! Can you also share how we can determine the data types of the json fields, in this video everything is considered to be a varchar

    • @KahanDataSolutions
      @KahanDataSolutions  2 ปีที่แล้ว +2

      Thanks Kanthi! You can use the TYPEOF function in Snowflake to determine the data type - docs.snowflake.com/en/sql-reference/functions/typeof.html

  • @summer_xo
    @summer_xo 2 ปีที่แล้ว

    I started off by asking myself, "this is cool but how could I convince my team to use this vs flattening via ADF". By the end seeing how reusable it was totally sold me, so much quicker than spinning up a new ADF pipeline, creating source etc (assuming the extract isn't taking place in ADF). Im curious if you think there are any more benefits using DBT/Snowflake to flatten vs ADF?

  • @wallyflops
    @wallyflops ปีที่แล้ว

    That lateral keyword is really weird, the documentation doesn't mention it's use anywhere. Only when listing multiple it seems.

  • @abdullahsiddique7787
    @abdullahsiddique7787 3 ปีที่แล้ว

    How long does it take to learn dbt for person knowing sql

    • @KahanDataSolutions
      @KahanDataSolutions  3 ปีที่แล้ว +1

      That really depends on the individual. Like anything else, the advanced components will take time/experience to fully learn. But if you know SQL you should be able to start contributing to dbt projects pretty quickly once you learn the basic concepts.

    • @abdullahsiddique7787
      @abdullahsiddique7787 3 ปีที่แล้ว

      @@KahanDataSolutions thanks bro yes I am good in sql

  • @yslx740
    @yslx740 3 ปีที่แล้ว

    Could you talk about getting proper data types, rather than just using varchar for everything? Would be super useful!

    • @KahanDataSolutions
      @KahanDataSolutions  3 ปีที่แล้ว +1

      That is a bit more complex but it is doable. Here is an example function in Snowflake that you can use with JSON data to get you there - docs.snowflake.com/en/sql-reference/functions/typeof.html

    • @yslx740
      @yslx740 3 ปีที่แล้ว

      @@KahanDataSolutions thanks, didn’t know about typeof

  • @domfp133
    @domfp133 5 หลายเดือนก่อน

    TOP

  • @lengoc5889
    @lengoc5889 2 ปีที่แล้ว

    OMG my problem in Bigquery. tks