mirror of
https://github.com/FlipsideCrypto/flow-models.git
synced 2026-02-06 13:26:44 +00:00
AN-1690/topshot_metadata (#36)
* topshot metadata * adjust stats column names * bronze view and inserted_timestamp
This commit is contained in:
parent
d8b0e8d0f0
commit
a952c32600
15
models/bronze/bronze__topshot_metadata.sql
Normal file
15
models/bronze/bronze__topshot_metadata.sql
Normal file
@ -0,0 +1,15 @@
|
||||
{{ config (
|
||||
materialized = 'view'
|
||||
) }}
|
||||
|
||||
SELECT
|
||||
id,
|
||||
contract,
|
||||
DATA,
|
||||
VALUE,
|
||||
TO_TIMESTAMP_NTZ(SUBSTR(SPLIT_PART(metadata$filename, '/', 4), 1, 10) :: NUMBER, 0) AS _inserted_timestamp
|
||||
FROM
|
||||
{{ source(
|
||||
'flow_external',
|
||||
'topshot_moments_minted_metadata_api'
|
||||
) }}
|
||||
60
models/silver/silver__nft_topshot_metadata.sql
Normal file
60
models/silver/silver__nft_topshot_metadata.sql
Normal file
@ -0,0 +1,60 @@
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
cluster_by = ['_inserted_timestamp::DATE'],
|
||||
unique_key = 'nft_id'
|
||||
) }}
|
||||
|
||||
WITH metadata AS (
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
{{ ref('bronze__topshot_metadata') }}
|
||||
|
||||
{% if is_incremental() %}
|
||||
WHERE
|
||||
_inserted_timestamp >= (
|
||||
SELECT
|
||||
MAX(_inserted_timestamp)
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
{% endif %}
|
||||
|
||||
qualify ROW_NUMBER() over (
|
||||
PARTITION BY id
|
||||
ORDER BY
|
||||
DATA :getMintedMoment :data :acquiredAt :: TIMESTAMP
|
||||
) = 1
|
||||
),
|
||||
FINAL AS (
|
||||
SELECT
|
||||
id AS nft_id,
|
||||
contract AS nft_collection,
|
||||
DATA :getMintedMoment :data :id :: STRING AS nbatopshot_id,
|
||||
DATA :getMintedMoment :data :flowSerialNumber :: NUMBER AS serial_number,
|
||||
DATA :getMintedMoment :data :setPlay :circulationCount :: NUMBER AS total_circulation,
|
||||
DATA :getMintedMoment :data :play :description :: VARCHAR AS moment_description,
|
||||
DATA :getMintedMoment :data :play :stats :playerName :: STRING AS player,
|
||||
DATA :getMintedMoment :data :play :stats :teamAtMoment :: STRING AS team,
|
||||
DATA :getMintedMoment :data :play :stats :nbaSeason :: STRING AS season,
|
||||
DATA :getMintedMoment :data :play :stats :playCategory :: STRING AS play_category,
|
||||
DATA :getMintedMoment :data :play :stats :playType :: STRING AS play_type,
|
||||
DATA :getMintedMoment :data :play :stats :dateOfMoment :: TIMESTAMP AS moment_date,
|
||||
DATA :getMintedMoment :data :set :flowName :: STRING AS set_name,
|
||||
DATA :getMintedMoment :data :set :flowSeriesNumber :: NUMBER AS set_series_number,
|
||||
DATA :getMintedMoment :data :play :assets :videos :: ARRAY AS video_urls,
|
||||
DATA :getMintedMoment :data :play :stats :: OBJECT AS moment_stats_full,
|
||||
DATA :getMintedMoment :data :play :statsPlayerGameScores :: OBJECT AS player_stats_game,
|
||||
DATA :getMintedMoment :data :play :statsPlayerSeasonAverageScores :: OBJECT AS player_stats_season_to_date,
|
||||
_inserted_timestamp
|
||||
FROM
|
||||
metadata
|
||||
WHERE
|
||||
DATA :getMintedMoment :: STRING IS NOT NULL
|
||||
)
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
FINAL
|
||||
Loading…
Reference in New Issue
Block a user