some more changes
This commit is contained in:
5
dbt/models/marts/listings.sql
Normal file
5
dbt/models/marts/listings.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
{{ config(materialized='table') }}
|
||||
select
|
||||
*
|
||||
from
|
||||
{{ ref('stg_listings') }}
|
||||
6
dbt/models/staging/__sources.yml
Normal file
6
dbt/models/staging/__sources.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
|
||||
sources:
|
||||
- name: funda
|
||||
tables:
|
||||
- name: raw_listings
|
||||
53
dbt/models/staging/stg_listings.sql
Normal file
53
dbt/models/staging/stg_listings.sql
Normal file
@@ -0,0 +1,53 @@
|
||||
with source as (
|
||||
select
|
||||
*
|
||||
from
|
||||
{{ source('funda', 'raw_listings') }}
|
||||
),
|
||||
flattened_json as (
|
||||
select
|
||||
(data#>>'{globalId}')::int as listing_id,
|
||||
(data#>>'{parentProject,globalId}')::int as parent_id,
|
||||
|
||||
(data#>>'{address,addressTitle}')::varchar as title,
|
||||
|
||||
(data#>>'{tracking,listing_offering_type}')::varchar as offering_type,
|
||||
(data#>>'{tracking,listing_type}')::varchar as listing_type,
|
||||
(data#>>'{tracking,listing_status}')::varchar as listing_status,
|
||||
|
||||
(data#>>'{advertising,targetingOptions,aantalkamers}')::int as rooms,
|
||||
(data#>>'{featuresFastView,energyLabel}')::varchar as energy_label,
|
||||
|
||||
{{ extract_numeric("data#>>'{featuresFastView,livingArea}'") }} as living_area,
|
||||
{{ extract_numeric("data#>>'{featuresFastView,plotArea}'") }} as plot_area,
|
||||
|
||||
(data#>>'{price,numericPrice}')::int as price,
|
||||
(data#>>'{isSoldOrRented}')::boolean as is_sold,
|
||||
|
||||
(data#>>'{advertising,targetingOptions,balkon}')::boolean as has_balcony,
|
||||
(data#>>'{advertising,targetingOptions,tuin}')::boolean as has_garden,
|
||||
(data#>>'{advertising,targetingOptions,parkeergelegenheidopafgeslotenterrein}')::boolean as has_closed_parking,
|
||||
(data#>>'{advertising,targetingOptions,parkeergelegenheidopeigenterrein}')::boolean as has_private_parking,
|
||||
|
||||
(data#>>'{address,country}')::varchar as country,
|
||||
(data#>>'{address,province}')::varchar as province,
|
||||
initcap((data#>>'{advertising,targetingOptions,gemeente}')) as municipality,
|
||||
(data#>>'{address,city}')::varchar as city,
|
||||
(data#>>'{address,neighborhood,name}')::varchar as neighborhood,
|
||||
(data#>>'{address,postcode}')::varchar as postcode,
|
||||
(data#>>'{tracking,listing_house_no}')::varchar as house_number,
|
||||
(data#>>'{tracking,listing_house_no_addition}')::varchar as house_number_addition,
|
||||
|
||||
(data#>>'{coordinates,lng}')::float as longitude,
|
||||
(data#>>'{coordinates,lat}')::float as latitude,
|
||||
|
||||
(data#>>'{googleMapsObjectUrl}')::varchar as google_maps_url,
|
||||
|
||||
(data#>>'{canonicalUrl}')::varchar as listing_url
|
||||
from
|
||||
source
|
||||
)
|
||||
select
|
||||
*
|
||||
from
|
||||
flattened_json
|
||||
Reference in New Issue
Block a user