update livequery

This commit is contained in:
Jensen Yap 2025-07-10 15:18:34 +09:00
parent ee86bd480f
commit bbde53c5c5
3 changed files with 60 additions and 34 deletions

View File

@ -72,8 +72,8 @@ vars:
config:
# The keys correspond to dbt profiles and are case sensitive
dev:
API_INTEGRATION: AWS_LIVE_QUERY_STG
EXTERNAL_FUNCTION_URI: yn4219e0o6.execute-api.us-east-1.amazonaws.com/stg/
API_INTEGRATION: AWS_LIVEQUERY_API_STG_V2
EXTERNAL_FUNCTION_URI: xi7ila2p66.execute-api.us-east-1.amazonaws.com/stg/
ROLES:
- INTERNAL_DEV
MAX_BATCH_ROWS: 10
@ -91,4 +91,4 @@ vars:
EXTERNAL_FUNCTION_URI: dlcb3tpiz8.execute-api.us-east-1.amazonaws.com/hosted/
ROLES:
- DATA_READER
MAX_BATCH_ROWS: 10
MAX_BATCH_ROWS: 10

View File

@ -31,6 +31,24 @@
NOT NULL
sql: udf_api
- name: {{ schema }}.udf_api_sync
signature:
- [method, STRING]
- [url, STRING]
- [headers, OBJECT]
- [DATA, VARIANT]
- [user_id, STRING]
- [SECRET, STRING]
return_type: VARIANT
func_type: EXTERNAL
api_integration: '{{ var("API_INTEGRATION") }}'
max_batch_rows: '1'
headers:
- 'fsc-quantum-execution-mode': 'sync'
options: |
NOT NULL
sql: 'v2/udf_api'
- name: {{ schema }}.udf_api_async
signature:
- [method, STRING]
@ -43,8 +61,10 @@
func_type: EXTERNAL
api_integration: '{{ var("API_INTEGRATION") }}'
max_batch_rows: '1'
headers:
- 'fsc-quantum-execution-mode': 'async'
options: |
NOT NULL
sql: 'v2/udf_api_async'
sql: 'v2/udf_api'
{% endmacro %}

View File

@ -21,36 +21,6 @@
secret_name
)
- name: {{ schema }}.udf_api
signature:
- [method, STRING]
- [url, STRING]
- [headers, OBJECT]
- [data, VARIANT]
- [user_id, STRING]
- [secret_name, STRING]
- [is_async, BOOLEAN]
return_type: VARIANT
options: |
VOLATILE
sql: |
SELECT
CASE COALESCE(IS_ASYNC, FALSE)
WHEN TRUE
THEN
-- Async execution: run async function then test_requests
utils.udf_redirect_s3_presigned_url(
_live.udf_api_async(
METHOD, URL, HEADERS, DATA, USER_ID, SECRET_NAME
):s3_presigned_url :: STRING
):data[0][1]
ELSE
-- Default execution: run regular function
_live.udf_api(
METHOD, URL, HEADERS, DATA, USER_ID, SECRET_NAME
)
END AS results
- name: {{ schema }}.udf_api
signature:
- [method, STRING]
@ -160,6 +130,42 @@
secret_name
)
- name: {{ schema }}.udf_api_v2
signature:
- [method, STRING]
- [url, STRING]
- [headers, OBJECT]
- [data, VARIANT]
- [secret_name, STRING]
return_type: VARIANT
options: |
VOLATILE
COMMENT = $$Executes an LiveQuery Sync or Async Externall Function.$$
sql: |
SELECT result
FROM (
SELECT
utils.udf_redirect_s3_presigned_url(
_live.udf_api_async(method, url, headers, data, _utils.UDF_WHOAMI(), secret_name)
:s3_presigned_url::STRING
):data[0][1] as result
WHERE LOWER(COALESCE(
headers:"fsc-quantum-execution-mode"::STRING,
headers:"Fsc-Quantum-Execution-Mode"::STRING,
headers:"FSC-QUANTUM-EXECUTION-MODE"::STRING
)) = 'async'
UNION ALL
SELECT
_live.udf_api_sync(method, url, headers, data, _utils.UDF_WHOAMI(), secret_name) as result
WHERE LOWER(COALESCE(
headers:"fsc-quantum-execution-mode"::STRING,
headers:"Fsc-Quantum-Execution-Mode"::STRING,
headers:"FSC-QUANTUM-EXECUTION-MODE"::STRING
)) != 'async'
)
- name: {{ schema }}.udf_rpc
signature:
- [blockchain, STRING]