Kylin V1. 6 عملکرد مکعب جریان مقیاس پذیر را منتشر می کند ، از Hadoop استفاده می کند تا داده های Kafka را برای ساخت مکعب مصرف کند ، می توانید این وبلاگ را برای طراحی سطح بالا بررسی کنید. این سند یک آموزش گام به گام است که نحوه ایجاد و ساخت یک مکعب نمونه را نشان می دهد.
آماده سازی
برای به پایان رساندن این آموزش ، شما به یک محیط Hadoop نیاز دارید که دارای Kylin V1. 6. 0 یا بالاتر باشد ، و همچنین یک کافکا (v0. 10. 0 یا بالاتر) در حال اجرا است. نسخه قبلی Kylin دارای چند مسئله است ، بنابراین لطفاً در ابتدا نمونه Kylin خود را ارتقا دهید.
در این آموزش ، ما از HortonWorks HDP 2. 2. 4 Sandbox VM + Kafka v0. 10. 0 (Scala 2. 10) به عنوان محیط استفاده خواهیم کرد.
kafka 0. 10. 0. 0 و kylin را نصب کنید
از Kafka ساخت HDP 2. 2. 4 استفاده نکنید زیرا خیلی قدیمی است ، اگر در حال اجرا است ، ابتدا آن را متوقف کنید.
Kylin v1. 6 را از صفحه بارگیری بارگیری کنید ، توپ تار را در/usr/محلی/پوشه گسترش دهید.
نمونه ای از موضوع kafka و داده های جمع آوری شده را ایجاد کنید
با 3 پارتیشن یک موضوع نمونه "kylin_streaming_topic" ایجاد کنید:
داده های نمونه را در این موضوع قرار دهید. کیلین یک کلاس ابزار دارد که می تواند این کار را انجام دهد.
این ابزار هر ثانیه 100 رکورد را به کافکا ارسال می کند. لطفاً آن را در طول این آموزش ادامه دهید. اکنون می توانید پیام نمونه را با kafka-console-consumer. sh بررسی کنید:
یک جدول از جریان را تعریف کنید
Start Kylin server with “$KYLIN_HOME/bin/kylin.sh start”, login Kylin Web GUI at http://sandbox:7070/kylin/, select an existing project or create a new project; Click “Model” ->"منبع داده" ، سپس روی نماد "اضافه کردن جدول جریان" کلیک کنید.

در گفتگوی پاپ آپ ، یک نمونه نمونه ای را که از Kafka-Console-Consumer دریافت کرده اید وارد کنید ، بر روی دکمه "" کلیک کنید ، Kylin پیام JSON را تجزیه می کند و تمام خصوصیات را لیست می کند.
برای این منبع داده جریان باید یک نام جدول منطقی ارائه دهید. این نام بعداً برای پرس و جو SQL استفاده خواهد شد. در اینجا "streaming_sales_table" را به عنوان نمونه ای در قسمت "نام جدول" وارد کنید.
شما نیاز به انتخاب یک قسمت Timestamp دارید که برای شناسایی زمان یک پیام استفاده می شود. Kylin می تواند مقادیر زمانی دیگر مانند "سال_ستارت" ، "Quarter_start" را از این ستون زمان به دست آورد ، که می تواند انعطاف پذیری بیشتری را در ساخت و پرس و جو در مکعب ایجاد کند. در اینجا "Order_time" را بررسی کنید. شما می توانید آن خواص مورد نیاز مکعب را انتخاب کنید. در اینجا بیایید همه زمینه ها را حفظ کنیم.
توجه کنید که کیلین از پیام ساختاری (یا می گویند "جاسازی شده") از v1. 6 پشتیبانی می کند ، آنها را به یک ساختار جدول مسطح تبدیل می کند. به طور پیش فرض از "_" به عنوان جداکننده خصوصیات ساختاری استفاده کنید.

روی "بعدی" کلیک کنید. در این صفحه ، اطلاعات خوشه ای Kafka را ارائه دهید."kylin_streaming_topic" را به عنوان نام "موضوع" وارد کنید. این خوشه دارای 1 کارگزار است که نام میزبان آن "Sandbox" است ، بندر "9092" است ، روی "ذخیره" کلیک کنید.

در بخش "تنظیم پیشرفته" ، "زمان بندی" و "اندازه بافر" تنظیمات اتصال با کافکا هستند ، آنها را نگه دارید.
در "تنظیم تجزیه و تحلیل" ، به طور پیش فرض Kylin فرض می کند که پیام شما فرمت JSON است ، و ستون Timestamp هر رکورد (مشخص شده توسط "TSColName") یک مقدار Bigint (Epoch Time) است. در این حالت ، شما فقط باید "tscolumn" را روی "order_time" تنظیم کنید.

در مورد واقعی اگر مقدار Timestamp یک جدول زمانی ارزشمند مانند "20 ژوئیه 2016 ، 9:59:17 AM" باشد ، شما باید کلاس تجزیه کننده را با "tsparser" و الگوی زمان با "tspatte" مانند این مشخص کنید:

برای ذخیره تنظیمات ، "ارسال" را کلیک کنید. اکنون یک جدول "جریان" ایجاد شده است.

مدل داده را تعریف کنید
با جدول تعریف شده در مرحله قبل ، اکنون می توانیم مدل داده را ایجاد کنیم. مرحله تقریباً مشابه است که شما یک مدل داده عادی ایجاد می کنید ، اما دو نیاز دارد:
- Cube Streaming با جداول جستجو از پیوستن پشتیبانی نمی کند. هنگام تعریف مدل داده ، فقط جدول واقعیت را انتخاب کنید ، بدون جدول جستجو.
- مکعب جریان باید تقسیم شود. اگر می خواهید مکعب را به صورت تدریجی در چند دقیقه بسازید ، "Minute_Start" را به عنوان ستون تاریخ پارتیشن مکعب انتخاب کنید. اگر در سطح ساعت ، "ساعت_ستارت" را انتخاب کنید.
در اینجا ما ستون های 13 بعد و 2 اندازه گیری را انتخاب می کنیم:


مدل داده را ذخیره کنید.
مکعب ایجاد کنید
مکعب جریان تقریباً مشابه یک مکعب معمولی است. چند نکته نیاز به توجه شما دارند:
- ستون زمان پارتیشن باید ابعاد مکعب باشد. در جریان OLAP ، زمان همیشه یک وضعیت پرس و جو است و کیلین از این امر استفاده می کند تا پارتیشن های اسکن شده را محدود کند.
- از "order_time" به عنوان ابعادی استفاده نکنید که بسیار ریز دانه است. پیشنهاد کنید از "mintue_start" ، "Hour_start" یا موارد دیگر استفاده کنید ، به نحوه بازرسی داده ها بستگی دارد.
- تعریف "year_start" ، "Quarter_start" ، "Moond_start" ، "day_start" ، "Hour_start" ، "minute_start" به عنوان یک سلسله مراتب برای کاهش ترکیبات برای محاسبه.
- در مرحله "تنظیم ارجاع" ، محدوده ادغام بیشتری مانند 0. 5 ساعت ، 4 ساعت ، 1 روز و سپس 7 روز ایجاد کنید. این به کنترل شماره قطعه مکعب کمک می کند.




ساخت یک ساخت
You can trigger the build from web GUI, by clicking “Actions” ->"ساخت" ، یا ارسال درخواست به Kylin Restful API با دستور "curl":
لطفاً توجه داشته باشید که نقطه پایانی API با یک مکعب معمولی متفاوت است (این پایان URL با "Build2").
در اینجا 0 به معنای آخرین موقعیت ، و 9223372036854775807 (long. max_value) به معنای نهایی در موضوع کافکا است. اگر اولین بار برای ساخت (بدون بخش قبلی) باشد ، کیلین به دنبال شروع مباحث به عنوان موقعیت شروع خواهد بود.
در صفحه "مانیتور" کار جدیدی ایجاد می شود. صبر کنید 100 ٪ تمام شد.
روی برگه "Insight" کلیک کنید ، SQL را برای اجرای آن تهیه کنید ، به عنوان مثال:

نتیجه در زیر به نظر می رسد.
ساخت را خودکار کنید
هنگامی که اولین ساخت و پرس و جو با موفقیت انجام شد ، می توانید ساختهای افزایشی را با فرکانس خاصی برنامه ریزی کنید. کیلین جبران خسارات هر ساخت را ثبت می کند. هنگام دریافت درخواست ساخت ، از آخرین موقعیت پایان شروع می شود و سپس آخرین جبران خسارت از کافکا را جستجو می کنید. با استفاده از API REST می توانید آن را با هر ابزار برنامه ریزی مانند Linux Cron تحریک کنید:
اکنون می توانید سایت را پایین بیاورید و تماشا کنید که مکعب به طور خودکار از جریان ساخته شود. و هنگامی که بخش های مکعب به محدوده زمانی بزرگتر جمع می شوند ، Kylin به طور خودکار آنها را در یک بخش بزرگتر ادغام می کند.
تیراندازی با مشکل
- ممکن است هنگام اجرای "kylin. sh" با خطای زیر روبرو شوید:
دلیل این امر این است که کیلین نتوانست کوزه های مناسب مشتری کافکا را پیدا کند. اطمینان حاصل کنید که متغیر محیط "kafka_home" را به درستی تنظیم کرده اید.
- خطای "کشته شده توسط مدیر" را در مرحله "ساخت مکعب" دریافت کنید
در داخل یک جعبه ماسه ای VM ، نخ ممکن است منبع حافظه درخواست شده را به آقای Job اختصاص ندهد زیرا الگوریتم مکعب "Inmem" از حافظه بیشتر درخواست می کند. می توانید با درخواست حافظه کمتر ، این را دور بزنید: ویرایش "Conf/Kylin_Job_conf_inmem. xml" ، دو پارامتر زیر را مانند این تغییر دهید:
- اگر در حال حاضر پیام های تاریخ در کافکا وجود دارد و از همان ابتدا نمی خواهید بسازید ، می توانید برای تنظیم موقعیت پایان فعلی به عنوان شروع مکعب تماس بگیرید:
- اگر برخی از کار بسازند خطایی داشته باشند و شما آن را دور بیندازید ، یک سوراخ (یا می گویند شکاف) در مکعب باقی خواهد ماند. از آنجا که هر بار که کیلین از آخرین موقعیت ساخته می شود ، نمی توانید انتظار داشته باشید که سوراخ توسط ساختهای عادی پر شود. Kylin API را برای بررسی و پر کردن سوراخ ها فراهم می کند
اگر نتیجه یک دستگیر خالی باشد ، به این معنی است که هیچ حفره ای وجود ندارد. در غیر این صورت ، کینین را برای پر کردن آنها تحریک کنید:
آموزش کار در فارکس...
ما را در سایت آموزش کار در فارکس دنبال می کنید
برچسب :
نویسنده : Mihayloo
بازدید : <-PostHit->
تاريخ : جمعه
26 اسفند
1401 ساعت: 15:32