معاملات بیت کوین را وارد و پرس و جو کنید

ساخت وبلاگ

در این بخش از آموزش ، یک طرحواره بانک اطلاعاتی به عنوان مثال ارائه شده است که می توانید برای مصرف و ذخیره داده های blockchain بیت کوین در TimescaledB استفاده کنید. این طرح فقط از یک جدول به نام معاملات تشکیل شده است.

قسمتهای داده معاملات بیت کوین

نمونه مجموعه داده بیت کوین برای این آموزش دارای زمینه های زیر است:

رشته شرح
زمان Timestamp معامله
block_id شناسه بلوک
هش شناسه هش معامله
اندازه اندازه معامله در KB
وزن اندازه معامله در واحدهای وزن
is_coinbase این که آیا معامله اولین معامله در یک بلوک است ، که شامل پاداش معدنچی است
output_total ارزش معامله در Satoshi (SAT)
output_total_usd ارزش معامله به دلار
هزینه هزینه معامله در Satoshi (SAT)
هزینه_ USD هزینه معامله در دلار

تعریف جدول

برای نگه داشتن داده های بیت کوین یک جدول به نام معاملات ایجاد کنید. پرس و جو زیر را اجرا کنید:

 
ايجاد كردن جدول معاملات (
زمان زمستان,
block_id در نظر گرفتن,
هش متن,
اندازه در نظر گرفتن,
وزن در نظر گرفتن,
is_coinbase بولی,
output_total با ابله,
output_total_usd دو برابر دقت، درستی,
هزینه با ابله,
هزینه_ USD دو برابر دقت، درستی,
جزئیات JSONB
);

طرح جدول شامل تمام زمینه های توضیح داده شده در بالا ، به علاوه یک ستون اضافی JSONB به نام جزئیات است. این ستون یک رشته JSONB را با اطلاعات اضافی در مورد هر معامله ذخیره می کند. از داده های این ستون در این آموزش استفاده نمی شود ، اما می توانید داده ها را کشف کرده و از انجام تجزیه و تحلیل های خود الهام بگیرید.

با استفاده از عملکرد Create_HyperTable () جدول را به یک فشار خون بالا تبدیل کنید. یک فشار خون بالا با استفاده از ویژگی chunking timescaledb در پشت صحنه ، بهبود عملکرد را به شما می دهد. این عملکرد به دو پارامتر نیاز دارد: نام جدول و نام ستون Timestamp. در این حالت ، نام ها معاملات و زمان هستند.

 
انتخاب کنید Create_hypertable("معاملات", 'زمان');

در مرحله بعد ، برخی از شاخص های اضافی را روی فشار خون بالا ایجاد کنید. این امر اجرای نمایش داده های بعدی SQL را بهینه می کند.

شاخص ها ایجاد کنید

هنگامی که یک فشار خون بالا ایجاد می کنید ، TimescaledB به طور خودکار یک فهرست درخت B را در ستون Timestamp اضافه می کند. این کار نمایش داده شده را در جایی که توسط ستون زمان فیلتر می کنید ، بهبود می بخشد.

برای سرعت بخشیدن به سؤالات در جایی که برای جستجوی معاملات جداگانه با ستون هش ، یک شاخص هش را به ستون اضافه کنید:

 
ايجاد كردن فهرست مطالب hash_idx ON عمومی.معاملات استفاده كردن هش (هش)

در مرحله بعد ، با اضافه کردن یک شاخص در ستون block_id ، پرس و جوهای سطح بلوک را سرعت بخشید:

 
ايجاد كردن فهرست مطالب block_idx ON عمومی.معاملات (block_id)

برای اطمینان از اینکه شما به طور تصادفی سوابق تکراری را وارد نکنید ، یک فهرست منحصر به فرد را در ستون های زمان و هش اضافه کنید.

 
ايجاد كردن منحصر بفرد فهرست مطالب time_hash_idx ON عمومی.معاملات (زمان, هش)

معاملات بیت کوین

شما شاخص های Hypertable را ایجاد کرده اید و اضافه شده است. بعد ، برخی از معاملات بیت کوین را مصرف کنید. پرونده داده نمونه شامل معاملات بیت کوین از پنج روز گذشته است. این پرونده CSV روزانه به روز می شود ، بنابراین همیشه معاملات اخیر بیت کوین را بارگیری می کنید. این مجموعه داده را در نمونه زمانی خود قرار دهید.

مصرف معاملات بیت کوین

  1. نمونه پرونده . csv را بارگیری کنید:
 
جنجال https://assets. timescale. com/docs/downloads/bitcoin-blockchain/bitcoin_sample. zip
 
از حالت فشرده کردن bitcoin_sample. zip
cd bitcoin_sample
 
psq l-x "postgres: // tsdbadmin:@:/tsdb؟ sslmode = نیاز"
کپی کردن معاملات از 'tutorial_bitcoin_sample. csv' عنوان CSV;

پس از اتمام مصرف ، پایگاه داده شما حاوی حدود 1. 5 میلیون معاملات بیت کوین است. اکنون می توانید اولین نمایش داده های خود را انجام دهید.

معاملات بیت کوین را پرس و جو کنید

پرس و جو برای پنج معاملات اخیر غیر سنبل:

 
انتخاب کنید زمان, هش, block_id, وزن از جانب معاملات
جایی که is_coinbase IS نه درست است، واقعی
سفارش BY زمان نزول
حد 5

نتیجه چیزی شبیه به این است:

زمان هش block_id وزن
2022-05-30 01:42:17 6543A8E489EADE391F099DF7066F17783EA2F9D19D64444D818AC22BD8FB86005E 738489 863
2022-05-30 01:42:17 A9E2BB3E734E0C0535DA4E8AB6E3D0352A44DB443D48A861BD5B196575DFD3FF 738489 577
2022-05-30 01:42:17 FD0A9A8C31962107D0A5A0C4EF2A5702E2C9FAD6D989E7AC543D87783205A980 738489 758
2022-05-30 01:42:17 E2AEDC6026459381485CD57F3E6A88121E5094C03FA4634193417069058609 738489 766
2022-05-30 01:42:17 429C0D00282645B54BD3C0082800A85D1C952D1764C54DC2A591F97B97C93FBD 738489 766
توجه داشته باشید

معامله Coinbase اولین معامله در هر بلوک است. این معامله شامل پاداش معدنچی است.

در اینجا یک مثال یک مثال دیگر وجود دارد که پنج بلوک اخیر را با آماری مانند وزن بلوک ، تعداد معامله و ارزش در دلار باز می گرداند:

 
با براب های اخیر AS (
انتخاب کنید block_id از جانب معاملات
جایی که is_coinbase IS درست است، واقعی
سفارش BY زمان نزول
حد 5
)
انتخاب کنید
t.block_id, شمردن(*) AS معامله_,
جمع(وزن) AS بلوک_ وزن,
جمع(output_total_usd) AS block_value_usd
از جانب معاملات t
درونی پیوستن اخیر_ بلبس b ON b.block_id = t.block_id
جایی که is_coinbase IS نه درست است، واقعی
گروه BY t.block_id
block_id معامله_ بلوک_ وزن block_value_usd
738489 2508 3991873 402592534. 37649953
738487 2231 3991983 560811110. 1410986
738488 3208 3991994 422477674. 0440979
738486 2154 3996197 481098865. 6260999
738485 2602 3991871 761258578. 3764017

در این مرحله ، شما داده های blockchain بیت کوین را در پایگاه داده خود دارید و اولین نمایش داده های SQL خود را انجام داده اید. در بخش بعدی ، عمیق تر در blockchain حفر کنید و از عملکردهای TimescaledB برای تولید بینش استفاده کنید!

در این صفحه مشکلی پیدا کرده اید؟

فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید

برچسب : نویسنده : آرش اصل زاد بازدید : <-PostHit-> تاريخ : دوشنبه 16 مرداد 1402 ساعت: 22:08