Halaman ini memberikan informasi tentang cara menangani jenis data UINT256 blockchain di Blockchain Analytics.
Kolom tanpa kehilangan data
Blockchain Analytics tidak mendukung kolom NUMERIK UINT256, tetapi beberapa jenis data blockchain memiliki presisi numerik hingga UINT256.
Untuk mempertahankan presisi numerik, set data Blockchain Analytics menampilkan nilai UINT256 dalam dua kolom terpisah:
- Kolom NUMERIK UINT128 dengan potensi kehilangan presisi.
- Kolom STRING yang berisi nilai desimal lengkap dalam bentuk string. Kolom string
ditandai dengan awalan
_lossless.
Fungsi yang Ditentukan Pengguna (UDF) BigQuery
Google Cloud menghosting library utilitas Analisis Blockchain yang berisi UDF untuk menangani komputasi dan agregasi UINT256. UDF berikut relevan untuk komputasi UINT256.
bqutil.fn.bignumber_addbqutil.fn.bignumber_subbqutil.fn.bignumber_mulbqutil.fn.bignumber_divbqutil.fn.bignumber_sumbqutil.fn.bignumber_avg
Lihat repositori GitHub UDF BigQuery untuk mengetahui detail tentang UDF BigQuery yang dikelola komunitas.
Lihat dokumentasi UDF BigQuery untuk mengetahui petunjuk penggunaan UDF BigQuery.
Contoh lossless dengan solusi UDF untuk UINT256
Di konsol Google Cloud , buka halaman BigQuery.
Kueri berikut dimuat ke dalam kolom Editor:
WITH withdrawals AS (
SELECT
w.amount_lossless AS amount,
DATE(b.block_timestamp) AS block_date
FROM
bigquery-public-data.blockchain_analytics_ethereum_mainnet_us.blocks AS b
CROSS JOIN UNNEST(withdrawals) AS w
)
SELECT
block_date,
bqutil.fn.bignumber_div(bqutil.fn.bignumber_sum(ARRAY_AGG(amount)), "1000000000") AS eth_withdrawn
FROM
withdrawals
GROUP BY 1 ORDER BY 1 DESC