در تجزیه و تحلیل داده ها ، تحلیلگران اغلب از میانگین های متحرک استفاده می کنند. میانگین حرکت به صاف کردن سری داده ها و همچنین شناسایی روندهای بلند مدت کمک می کند. جداول جدید نمایش زنده شروع به به وجود آوردن قابلیت های زمان واقعی برای Clickhouse می کند.
یکی از کاربردهای جداول نمایش زنده ، محاسبه معیارهای زمان واقعی در داده های رویداد است. خوانش از سنسورهای IoT ، کنه قیمت از بورس اوراق بهادار یا برخی از معیارهای سرورهای تولیدی شما برخی از نمونه های جریان داده های رویداد است. Clickhouse می تواند تمام این داده ها را با نسبت فشرده سازی خوب و عملکرد عالی پرس و جو تحلیلی ذخیره کند.

در این مقاله ، ما نمونه ای از چگونگی استفاده از نمودارهای زنده را برای محاسبه آمار ساده در زمان واقعی در جریان وقایع نشان خواهیم داد که می توانیم به طور مداوم در Clickhouse بارگذاری کنیم.
برپایی
امکان استفاده از جداول نمایش زنده برای محاسبه آمار در زمان واقعی در جریان وقایع در نسخه پایدار 20. 1. 2. 4 در دسترس قرار گرفت. شما فقط می توانید نصب محلی خود را ارتقا دهید ، یا اگر Clickhouse را که قبلاً نصب کرده اید ، به روز نکنید ، لطفاً دستورالعمل های موجود در اسناد Clickhouse (https://clickhouse. yandex/docs/en/gettion_started/install/) را دنبال کنید. اگر می خواهید این نسخه را دنبال کنید ، حتماً این نسخه یا نسخه بعدی را داشته باشید.
برای مثال ، ما از یک جدول استفاده خواهیم کرد که فقط ستون های ارزش و زمان را برای ذخیره یک جریان از داده ها شامل می شود. در جریان های واقعی ، به احتمال زیاد ستون های بیشتری وجود خواهد داشت ، اما ما آن را ساده نگه می داریم.
مقدار متوسط ساده نسبت به آخرین مقادیر N
یکی از ساده ترین آماری که می توانیم با استفاده از جریان رویدادها محاسبه کنیم ، یک مقدار متوسط نسبت به آخرین مقادیر N است. یک پرس و جو برای محاسبه به طور متوسط بیش از آخرین مقادیر N ، با در نظر گرفتن N به 10 ، می تواند به صورت زیر نوشته شود:
پرس و جو ساده است. ابتدا با نزولی ردیف ها را سفارش می دهیم و سپس 10 ردیف برتر را می گیریم. پس از آن ، ما میانگین را با جمع بندی تمام مقادیر و تقسیم نتیجه با 10 محاسبه می کنیم.
بیایید جدول رویدادها را با برخی از مقادیر از قبل جمع کنیم و مطمئن شویم که پرس و جو نتیجه صحیح را برمی گرداند.
اگر پرس و جو را اجرا کنیم ، نتیجه باید به شرح زیر باشد.
حرکت متوسط در آخرین مقادیر N
با بررسی اینکه پرس و جو ما برای محاسبه مقدار متوسط در ده ردیف گذشته نتیجه صحیح را برمی گرداند ، اکنون می توانیم یک جدول نمای زنده ایجاد کنیم تا میانگین متحرک را محاسبه کنیم. بیایید ببینیم که چگونه می توانیم آن را ایجاد کنیم ، و سپس توضیح خواهیم داد که چگونه کار می کند.
آن را امتحان کنید و جدول را ایجاد کنید. سپس ، سعی کنید آن را پرس و جو کنید تا مطمئن شوید که ما نتیجه مشابهی را داریم.
شاید متوجه شده باشید که پرس و جو مورد استفاده ما برای ایجاد یک جدول نمایش زنده ، همان چیزی نیست که ما برای محاسبه مقدار متوسط استفاده می کردیم. به جای اینکه فقط یک زیرمجموعه داشته باشیم ، اکنون دو نفر داریم. تعجب آور ترین این است که به نظر می رسد زیرمجموعه ای که زیرمجموعه اصلی را می پیچد ، به نظر می رسد که با نزول بار دوباره و دوباره ، همان حد 10 را سفارش می دهد.
چگونه کار می کند؟
با دیدن یک تعریف به ظاهر عجیب و غریب از یک جدول نمای زنده برای محاسبه میانگین در حال حرکت ، ما آماده هستیم تا به نحوه برخورد جداول نمای زنده از زیرمجموعه ها بپردازیم. این چندان پیچیده نیست ، بنابراین سعی می کنم آن را توضیح دهم.
نمای زنده نمایش داده های حافظه پنهان منجر به حافظه و سپس نتیجه جزئی با داده های جدید برای تولید پاسخ نهایی می شود. بلوک های قابل قبول نتیجه جزئی را ذخیره می کنند. اینها همان بلوک هایی هستند که توسط یک جدول توزیع شده برای جمع آوری نتایج جزئی از سرورهای مختلف از راه دور استفاده می شوند. ما این بلوک ها را "قابل قبول" می نامیم زیرا می توانیم آنها را با بلوک های جدید ادغام کنیم که حاوی نتایج جزئی (قابل ادغام) نیز هست. در مورد یک جدول نمایش زنده ، ما از بلوک های قابل قبول جدید برای ذخیره جدیدترین داده ها استفاده می کنیم و آنها را با بلوک های قابل حمل ذخیره شده به دست آمده از داده های قدیمی ترکیب می کنیم.
بنابراین جواب ساده است. هنگامی که یک پرس و جو ذخیره شده حاوی زیرمجموعه ای است ، بلوک های قابل ادغام فقط برای زیرمجموعه ترین زیر مجموعه بدست می آیند.
به عنوان مثال بالا ، زیرنویس اصلی است
و بلوک های قابل قبول حاوی نتایج جزئی از این پرس و جو هستند.
واقعاً چگونه کار می کند؟
بیایید نگاهی دیگر به مثال بالا بیندازیم تا جزئیات را درک کنیم. این درک به شما کمک می کند تا جداول نمایش زنده را در داده های دنیای واقعی اعمال کنید. ابتدا ، اطلاعاتی را که تاکنون داریم مرور می کنیم:
- جداول نمای زنده بلوک های قابل قبول را در حافظه ذخیره کنید
- آنها بلوک های قابل قبول به دست آمده از داده های قدیمی و جدید را برای به دست آوردن نتیجه نهایی ترکیب می کنند
- و هنگامی که یک پرس و جو ذخیره شده ، پرس و جو مورد استفاده برای ایجاد جدول View Live ، دارای زیرمجموعه ای است ، پس از آن از زیرنویس داخلی برای به دست آوردن بلوک های قابل استفاده استفاده می شود
در اینجا دوباره پرس و جو ذخیره شده است که میانگین حرکت در زمان واقعی را ایجاد می کند.
ما نحوه عملکرد آن را گام به گام تجزیه خواهیم کرد.
مرحله 1
جدول Live View ابتدا بلوک های قابل قبول را با استفاده از داده های فعلی در جدول رویدادها محاسبه می کند. داده های جدید هنوز نرسیده است ، بنابراین جدول رویدادها تمام داده های موجود در آنجا را دارد. از آنجا که پرس و جو ذخیره شده دارای زیرمجموعه هایی است ، جدول Live View از پرس و جو داخلی برای به دست آوردن بلوک های قابل قبول استفاده می کند. بنابراین ، بلوک های قابل قبول حاوی نتیجه جزئی از پرس و جو در زیر هستند.
گام 2
هیچ بلوک قابل ادغام دیگری وجود ندارد زیرا هنوز اطلاعات جدیدی وارد نشده است ، بنابراین ما تمام بلوک های قابل ادغام مورد نیاز خود را داریم. ما با استفاده از پرس و جو بیرونی در بلوک های قابل ادغام ، جایی که پرس و جو در آن قرار دارد ، نتیجه نهایی را بدست می آوریم
که ابتدا سفارش را با استفاده از زمان و محدود 10 اعمال می کند و سپس با استفاده از ردیف های حاصل میانگین را محاسبه می کند.
توجه داشته باشید که وقتی داده جدیدی وجود ندارد ، سفارش توسط زمان و محدود کردن 10 در پرس و جو بیرونی کاری مفید انجام نمی شود زیرا بلوک های قابل ادغام قبلاً دارای همان ترتیب و بندهای محدود شده هستند. آنها فقط با ورود داده های جدید وارد بازی می شوند و ما بلوک های قابل قبول را از داده های قدیمی و جدید ترکیب می کنیم. هیچ داده جدیدی وجود ندارد ، بنابراین ما نتیجه نهایی را داریم.
مرحله 3
اکنون ما یک درج جدید داریم که وارد می شود و Clickhouse آن را به یک یا چند بلوک داده می شکند. نماهای زنده هر بلوک را به طور جداگانه اداره می کند. بنابراین ، می توانیم در نظر بگیریم که فقط یک بلوک مانند بلوک های دیگر داریم ، این روش فقط تکرار می شود.
با یک بلوک جدید که شامل آخرین داده ها است ، Live View باید نتیجه جزئی از داده های قدیمی را با داده های بلوک جدید ترکیب کند. ما از قبل می دانیم که جدول Live View نتیجه جزئی را از داده های قدیمی به عنوان بلوک های قابل قبول ذخیره می کند و این بلوک ها را با سایر بلوک های قابل ادغام ترکیب می کند. بنابراین ، جدول Live View بلوک های قابل قبول را از بلوک جدید محاسبه می کند و سپس این بلوک های قابل ادغام را با آنچه در حال حاضر است ترکیب می کند.
بلوک های قابل قبول از داده های قدیمی دارای ده ردیف هستند. به یاد داشته باشید ، از پرس و جو داخلی برای به دست آوردن آنها استفاده می کند. به طور مشابه ، ما از پرس و جو درونی برای به دست آوردن بلوک های قابل ادغام از بلوک جدید استفاده می کنیم ، و همچنین می تواند تا ده ردیف داشته باشد. وقتی این بلوک های قابل قبول را از داده های قدیمی و جدید ترکیب می کنیم ، می توانیم تا بیست ردیف داشته باشیم. اما ما فقط ده می خواهیم ، و به همین دلیل است که ما سفارش دیگری را با گذشت زمان و محدودیت 10 در زیر بخش بیرونی برای فیلتر کردن آنچه لازم نیست!
مرحله 4
نتیجه نهایی به دست آوردن آسان است. هنگامی که ما سفارش را به صورت DESC اعمال می کنیم و 10 بندهای را در بلوک های قابل قبول محدود می کنیم ، به سادگی میانگین را مانند گذشته محاسبه می کنیم و نتیجه ای را که می خواهیم بدست می آوریم. Voilà ، ما برای هر بلوک جدید از داده ها میانگین حرکت در زمان واقعی داریم ، این روش فقط تکرار می شود.
جریان در زمان واقعی مقادیر متوسط متحرک
با درک جدید در دست ، ما آماده هستیم تا میانگین حرکت در زمان واقعی خود را در عمل ببینیم. مشتری دیگر Clickhouse را باز کنید. ما از آن برای درج داده ها و اجرای پرس و جو ساعت در مشتری فعلی برای تماشای میانگین حرکت در زمان واقعی استفاده خواهیم کرد.
از طرف مشتری دیگر ، مقدار 1 را در جدول رویدادها وارد کنید.
مشاهده کنید که مقدار متوسط متحرک جدید از پرس و جو ساعت تغییر نکرده است زیرا نتیجه یکسان است. مقدار دیگری از 1 را وارد کنید ، و اکنون باید ببینید
که نتیجه جمع ([3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10 ، 1 ، 1])/10 است و برابر با 5. 4 است. اگر 1 مورد دیگر را وارد کنید ، باید شاهد تغییر نتیجه باشید
که نتیجه جمع ([4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10 ، 1 ، 1 ، 1])/10 است.
داده های بیشتری را اضافه کنید و به روزرسانی متوسط متحرک خود را ببینید و تأیید کنید که میانگین حرکت در زمان واقعی ما با استفاده از یک جدول نمایش زنده کار می کند.
نتیجه
در این مقاله ، ما بررسی کرده ایم که چگونه می توانیم از زیرمجموعه ها در جداول نمایش زنده استفاده کنیم تا میانگین حرکت در زمان واقعی را محاسبه کنیم. برای محاسبه سایر معیارهای زمان واقعی می توانید از یک تکنیک مشابه استفاده کنید.
ساخت پرس و جو ذخیره شده بسیار شهودی نیست ، بنابراین ما به جزئیات نحوه عملکرد زیرمجموعه ها با جداول نمایش زنده می پردازیم. با استفاده از این دانش ، ما از طریق مثال متوسط حرکت گام به گام کار کردیم.
اکنون شما باید آماده استفاده از این قابلیت جدید در داده های خود باشید و از چگونگی Clickhouse نه تنها به شما در کشف داده های خود کمک می کند بلکه همچنین چگونه می تواند داده های شما را زنده کند. فراموش نکنید که در عقل ، ما همیشه خوشحالیم که به شما کمک می کنیم تا Clickhouse را با نیازهای خود سازگار کنید و قابلیت های آن را به محدوده سوق دهید.
استراتژی برای تجارت گزینه های...
ما را در سایت استراتژی برای تجارت گزینه های دنبال می کنید
برچسب :
نویسنده : فریبا کامران
بازدید : 37
تاريخ : دوشنبه
22 خرداد
1402 ساعت: 11:55