Create a Data Mesh
Build your first data mesh in Ascend
Create a Mesh Data Product
Here, we'll work with the Taxi Domain and Weather Domain to create a data mesh ready for analysis. If you haven't done so already, create a Taxi Domain and create a Weather Domain.
Step 1: Import Data Shares
Select Connect to a Data Share from the tool panel. Select MESH_DOMAIN_TAXI_DATA and select subscribe.
Repeat these steps for MESH_DOMAIN_WEATHER_DATA.
Step 2: Filter and Join Weather and Taxi Data
Next, we'll work with the data from the weather domain and prepare it for joining with the taxi domain.
Create a UNIQUE WEATHER BY DAY Transform
Create a new Transform Connector from the MESH_DOMAIN_WEATHER_DATA Data Share by left-selecting the vertical ellipsis and selecting Create new Transform.
Name the transform "UNIQUE_WEATHER_BY_DAY" and paste the following code into the query editor.
UNIQUE_WEATHER_BY_DAYSELECT
WEATHER_DATE,
DATATYPE,
STATION,
WEATHER,
PRECIPITATION,
STATION_NAME
from (
select *, row_number() over (
partition by WEATHER_DATE
order by STATION_NAME desc
) as row_num
from {{MESH_DOMAIN_WEATHER_DATA}}
) as ordered_weather
WHERE ordered_weather.row_num = 1SELECT
WEATHER_DATE,
DATATYPE,
STATION,
WEATHER,
PRECIPITATION,
STATION_NAME
from (
select *, row_number() over (
partition by WEATHER_DATE
order by STATION_NAME desc
) as row_num
from {{MESH_DOMAIN_WEATHER_DATA}}
) as ordered_weather
WHERE ordered_weather.row_num = 1SELECT
WEATHER_DATE,
DATATYPE,
STATION,
WEATHER,
PRECIPITATION,
STATION_NAME
from (
select *, row_number() over (
partition by WEATHER_DATE
order by STATION_NAME desc
) as row_num
from {{MESH_DOMAIN_WEATHER_DATA}}
) as ordered_weather
WHERE ordered_weather.row_num = 1Create a Weather and Rides Transform
Create a new Transform Connector from the UNIQUE_WEATHER_BY_DAY Transform by left-selecting the vertical ellipsis and selecting Create new Transform.
Name the transform "WEATHER_AND_RIDES" and paste the following code into the query editor.
WEATHER_AND_RIDESSELECT
T.*,
W.WEATHER
FROM {{MESH_DOMAIN_TAXI_DATA}} T
LEFT JOIN {{UNIQUE_WEATHER_BY_DAY}} W ON W.WEATHER_DATE = T.RIDE_DATESELECT
T.*,
W.WEATHER
FROM {{MESH_DOMAIN_TAXI_DATA}} T
LEFT JOIN {{UNIQUE_WEATHER_BY_DAY}} W ON W.WEATHER_DATE = T.RIDE_DATESELECT
T.*,
W.WEATHER
FROM {{MESH_DOMAIN_TAXI_DATA}} T
LEFT JOIN {{UNIQUE_WEATHER_BY_DAY}} W ON W.WEATHER_DATE = T.RIDE_DATEStep 3: Create a Final Data Product
The final three data products are created using Transforms.
Create a Bad Weather Rides Transform
Create a new Transform Connector from the WEATHER_AND_RIDES Transform by left-selecting the vertical ellipsis and selecting Create new Transform.
Name the transform "BAD_WEATHER_RIDES" and paste the following code into the query editor:
BAD_WEATHER_RIDESSELECT * FROM {{Weather_and_Rides}} AS w
WHERE w.WEATHER NOT IN('Not Rainy')SELECT * FROM {{Weather_and_Rides}} AS w
WHERE w.WEATHER NOT IN('Not Rainy')SELECT * FROM {{Weather_and_Rides}} AS w
WHERE w.WEATHER NOT IN('Not Rainy')Create an All Rides with Weather Transform
Create a new Transform Connector from the Weather and Rides Transform by left-selecting the vertical ellipsis and selecting Create new Transform.
Name the transform "ALL_RIDES_WITH_WEATHER" and paste the following code into the query editor.
ALL_RIDES_WITH_WEATHERSELECT * FROM {{Weather_and_Rides}} AS wSELECT * FROM {{Weather_and_Rides}} AS wSELECT * FROM {{Weather_and_Rides}} AS wCreate a Good Weather Rides Transform
Create a new Transform Connector from the Weather and Rides Transform by left-selecting the vertical ellipsis and selecting Create new Transform.
Name the transform "Good Weather Rides" and paste the following code into the query editor.
Good Weather RidesSELECT * FROM {{Weather_and_Rides}} AS w
WHERE w.WEATHER = 'Not Rainy'SELECT * FROM {{Weather_and_Rides}} AS w
WHERE w.WEATHER = 'Not Rainy'SELECT * FROM {{Weather_and_Rides}} AS w
WHERE w.WEATHER = 'Not Rainy'Your completed DAG should look like this:
Next Steps
Congrats on creating your first data product! For the remainder of the lab, we'll work through using the data you brought with you. Or, if you didn't bring your own data, we've created challenges for you to complete. As always, don't hesitate to ask when you have questions!
Updated 5 months ago