blocks >100 txns

This commit is contained in:
Eric Laurello 2023-12-05 10:24:37 -05:00
parent a059d1260b
commit 61879e1dd3
3 changed files with 102 additions and 2 deletions

View File

@ -51,12 +51,16 @@ tests:
vars:
"dbt_date:time_zone": GMT
"UPDATE_SNOWFLAKE_TAGS": TRUE
STREAMLINE_INVOKE_STREAMS: TRUE
STREAMLINE_INVOKE_STREAMS: FALSE
STREAMLINE_USE_DEV_FOR_EXTERNAL_TABLES: False
UPDATE_UDFS_AND_SPS: False
UPDATE_SNOWFLAKE_TAGS: True
OBSERV_FULL_TEST: FALSE
START_GHA_TASKS: False
API_INTEGRATION: '{{ var("config")[target.name]["API_INTEGRATION"] if var("config")[target.name] else var("config")["dev"]["API_INTEGRATION"] }}'
EXTERNAL_FUNCTION_URI: '{{ var("config")[target.name]["EXTERNAL_FUNCTION_URI"] if var("config")[target.name] else var("config")["dev"]["EXTERNAL_FUNCTION_URI"] }}'
ROLES: |
["INTERNAL_DEV"]
dispatch:

View File

@ -44,7 +44,7 @@ SELECT
'"method": "tx_search", "params":["',
'tx.height=',
block_id :: INTEGER,
'",true, "1" ,"1000" ,"asc"],"id":"',
'",true, "1" ,"100" ,"asc"],"id":"',
block_id :: STRING,
'"}'
)

View File

@ -0,0 +1,96 @@
{{ config (
materialized = "view",
post_hook = if_data_call_function(
func = "{{this.schema}}.udf_bulk_json_rpc(object_construct('sql_source', '{{this.identifier}}', 'external_table', 'pc_getTxSearch', 'sql_limit', {{var('sql_limit','40000')}}, 'producer_batch_size', {{var('producer_batch_size','10000')}}, 'worker_batch_size', {{var('worker_batch_size','1000')}}, 'batch_call_limit', {{var('batch_call_limit','10')}}))",
target = "{{this.schema}}.{{this.identifier}}"
)
) }}
WITH last_3_days AS (
SELECT
block_id
FROM
{{ ref("_max_block_by_date") }}
qualify ROW_NUMBER() over (
ORDER BY
block_id DESC
) = 3
),
gen AS (
SELECT
ROW_NUMBER() over (
ORDER BY
SEQ4()
) AS id
FROM
TABLE(GENERATOR(rowcount => 50))
),
possible_perms AS (
SELECT
id,
(
id * 100
) - 99 min_count,
id * 100 max_count
FROM
gen
),
perms AS (
SELECT
block_id,
id
FROM
(
SELECT
A.block_id,
A.tx_count
FROM
{{ ref("silver__blocks") }} A
JOIN last_3_days b
ON A.block_id = b.block_id
WHERE
A.block_id > 4109598
AND A.tx_count > 100
) A
JOIN possible_perms
ON CEIL(
tx_count,
-2
) >= max_count
),
blocks AS (
SELECT
block_id,
id
FROM
perms
WHERE
id > 1
EXCEPT
SELECT
block_number :: STRING,
metadata :request :params [2] :: INT AS id
FROM
{{ ref("bronze__streamline_transactions") }}
WHERE
metadata NOT LIKE '"1",%'
)
SELECT
PARSE_JSON(
CONCAT(
'{"jsonrpc": "2.0",',
'"method": "tx_search", "params":["',
'tx.height=',
block_id :: INTEGER,
'",true, "',
id :: INT :: STRING,
'" ,"1000" ,"asc"],"id":"',
block_id :: INT :: STRING,
'"}'
)
) AS request
FROM
blocks
ORDER BY
block_id ASC