در این بخش از آموزش ، یک طرحواره بانک اطلاعاتی به عنوان مثال ارائه شده است که می توانید برای مصرف و ذخیره داده های 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 روزانه به روز می شود ، بنابراین همیشه معاملات اخیر بیت کوین را بارگیری می کنید. این مجموعه داده را در نمونه زمانی خود قرار دهید.
مصرف معاملات بیت کوین
- نمونه پرونده . 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