Metabase

استراتژی‌های تحلیل رویداد

تیم متابیستیم متابیس
Mar 03, 2016
استراتژی‌های تحلیل رویداد Image

نمای کلی

پس شما می‌خواهید تحلیل رویداد انجام دهید — عالی! این سند برخی چیزهای اساسی که باید بدانید را ارائه می‌دهد. چند بخش برای خواندن وجود دارد، به شرح زیر:

  • استراتژی‌های کلی برای پیاده‌سازی تحلیل رویداد. سه گزینه سطح بالا برای در نظر گرفتن را توصیف می‌کند.
  • آناتومی یک خط لوله تحلیل رویداد و نحوه کار آن. این به شما کمک می‌کند تصمیمات بهتری در طول سفر خود بگیرید.
  • توصیه‌های عملی. چگونه از مشکل دور بمانید و از اشتباهات بسیاری از افرادی که قبل از شما این چیزها را امتحان کرده‌اند بهره‌مند شوید.

استراتژی‌های تحلیل رویداد

کدام گزینه یک تیم انتخاب می‌کند بستگی زیادی به نیازهای آنها دارد، اما اکثر مشتریان تمایل دارند که به طور پیشرونده از این گزینه‌ها عبور کنند همانطور که محصول و کسب‌وکار آنها مقیاس می‌یابد.

  • استفاده از یک ارائه‌دهنده تحلیل SAAS سرتاسری. شما این کار را انجام می‌دهید وقتی نمی‌توانید هزینه مدیریت هر یک از خط لوله تحلیل رویداد خود را بپردازید یا به سادگی نمی‌خواهید.
    • کاملاً بدون دست و بدون زیرساخت مورد نیاز
    • سریع‌ترین گزینه برای قرار دادن چیزی
    • راه‌حل‌ها اغلب به خوبی برای بارهای کاری تحلیل رویداد بهینه شده‌اند
    • مزایا
    • راه‌حل اختصاصی بدون کنترل بر قابلیت‌ها
    • داده ایزوله است و نمی‌تواند با هیچ داده دیگری از برنامه شما ترکیب شود
    • اغلب در حجم‌های بالاتر بسیار گران می‌شود
    • در بیشتر موارد شما داده خود را ندارید یا توانایی دریافت کامل آن را ندارید اگر تصمیم بگیرید که می‌خواهید کارهای بیشتری با آن انجام دهید
    • معایب
    • Google Analytics
    • Mixpanel
    • Keen IO
    • راه‌حل‌های نمونه
  • خط لوله سفارشی ساخته شده از خدمات مدیریت شده. این مسیر میانی است. شما برخی از عناصر حیاتی کنترل را در ازای کمی کار بیشتر به دست می‌آورید.
    • شما داده را در تمام طول خط لوله دارید، که به شما فرصت می‌دهد هر روشی که می‌خواهید از آن استفاده کنید را تصمیم بگیرید
    • شما قادر خواهید بود منابع داده مختلف خود را با هم ترکیب کنید، که تحلیل‌هایی را که در غیر این صورت ممکن نیستند را فعال می‌کند
    • حریم خصوصی و امنیت داده بیشتر در کنترل شما هستند
    • مزایا
    • شما مسئولیت جمع‌آوری و ذخیره داده خود را بر عهده می‌گیرید، بنابراین باید آماده باشید که راه‌حل را داشته باشید
    • معمولاً نیاز به ایجاد و نگهداری برخی کد برای مدیریت استخراج و تبدیل داده جمع‌آوری شده برای استفاده دارید
    • معایب
    • AWS Mobile Events + S3 + Redshift + BI
    • AWS Kinesis + S3 + DWH + BI
    • Kafka + S3 + DWH + BI
    • Kafka + Storm + BI (زمان واقعی)
    • Segment.io + S3 or Redshift + BI
    • راه‌حل‌های نمونه
  • خط لوله کاملاً سفارشی. این یک خط لوله همه‌چیز مجاز و کاملاً ساخته شده است که اغلب شامل اجزایی است که به شدت سفارشی شده‌اند.
    • کنترل کامل بر هر مرحله در خط لوله اطمینان می‌دهد که توانایی حل هر چیزی که نیاز دارید را دارید
    • می‌توانید برای نیازهای خاص خود در صورت مناسب بهینه کنید به جای تکیه بر راه‌حل‌های تعمیم‌یافته‌تر
    • همه داده شما می‌تواند در صورت نیاز جابجا و تلفیق شود، بنابراین هر تحلیلی ممکن است
    • مزایا
    • این گران‌ترین گزینه است و قطعاً نیاز به تعداد کارمند اختصاصی برای اجرا دارد
    • ساخت یک خط لوله داده کامل زمان می‌برد — اغلب چندین ماه یا سال
    • معایب
    • شما اینجا به تنهایی هستید — این چیزی است که می‌خواستید، درست است؟
    • راه‌حل‌های نمونه

آناتومی یک خط لوله تحلیل

خطوط لوله داده در اشکال و اندازه‌های زیادی می‌آیند، اما در بیشتر موارد مراحل زیر یک چارچوب محکم برای بحث در مورد قطعات در خط لوله نشان می‌دهند.

  • تولید - این جایی است که داده ایجاد می‌شود و چگونه. می‌تواند از یک برنامه موبایل، یک کاربر در مرورگر خود، یک سرور بک‌اند، هر چیزی باشد. در بیشتر موارد شما یا این کد را خود می‌نویسید یا از یک SDK شخص ثالث مانند GA، Segment.io، Mixpanel و غیره استفاده می‌کنید.
  • جمع‌آوری - پس از تولید داده، معمولاً نیاز به ارسال به جایی و ذخیره برای استفاده پایین‌دست دارد. در بیشتر موارد این یک API مبتنی بر HTTP از نوعی است. مهم است که در نظر داشته باشید که داده اغلب یک بار جمع‌آوری می‌شود اما برای استفاده چندباره در نظر گرفته شده است، بنابراین طراحی برای یک مدل pub/sub در اینجا منطقی است تا به چندین مشترک اجازه دهد به همان داده دسترسی داشته باشند.
  • پردازش - پس از جمع‌آوری داده، معمولاً از طریق یک یا چند تبدیل برای آماده‌سازی برای مصرف می‌رود. این مرحله اغلب به شدت سفارشی است و به شدت به نحوه تولید و جمع‌آوری داده و همچنین آنچه برای انبار داده در دسترس است بستگی دارد. این ETL شما است و به طور مؤثر چسب در خط لوله شما است.
  • انبار - به نحوه ذخیره و در دسترس قرار دادن داده برای تحلیل اشاره دارد. این می‌تواند به سادگی یک فایل CSV یا به پیچیدگی یک خوشه Hadoop با بیش از ۲,۰۰۰ گره باشد. عوامل اصلی در انتخاب انبار شما حجم داده و نیازهای تحلیلی هستند.
  • تحلیل - مجموعه ابزارها و فرآیندهایی که داده را از یک انبار می‌کشند و برای مصرف فعال فرمت می‌کنند، معمولاً توسط انسان‌ها. این جایی است که ابزارهای BI و داشبوردهای سفارشی شما تمایل به تمرکز دارند. اگر یک رشته ML دارید، در اینجا نیز نرم‌افزار مدل‌سازی خواهید داشت.

توصیه‌های عملی

افکار کلی

  • هر راه‌حل را تا جایی که می‌توانید سوار شوید قبل از حرکت به یک رویکرد پیچیده‌تر.
  • کار درگیر در اجرای خط لوله خود را دست کم نگیرید. یک خط لوله داده سیستمی نیست که آن را راه‌اندازی کنید و فقط بدون هیچ توجهی اجرا شود؛ نیاز به مراقبت و تغذیه به طور منظم دارد.
    • تولید = آسان
    • ضبط = متوسط → آسان (همانطور که بهتر می‌شوید)
    • پردازش = سخت → متوسط (همانطور که بهتر می‌شوید)
    • انبار = سخت → متوسط (همانطور که بهتر می‌شوید)
    • تحلیل = متوسط
  • درجه کلی دشواری/هزینه زمان برای بخش‌های خط لوله شما تمایل دارد که باشد:

هنگام رفتن با یک سرویس SAAS سرتاسری

  • معمولاً باید کمی کدنویسی انجام دهید تا یک SDK شخص ثالث را پیاده‌سازی کنید و کد تولید داده را در برنامه خود یکپارچه کنید. بسته به آنچه می‌خواهید ردیابی کنید، این می‌تواند بسیار آسان باشد، مانند GA در یک وب‌سایت، یا می‌تواند کمی بیشتر درگیر باشد.
  • مشتریان/کلاینت‌ها/کاربران داده را به یک شخص ثالث ارسال می‌کنند، بنابراین حداقل برخی پیامدهای قانونی و حریم خصوصی برای در نظر گرفتن وجود دارد. در بیشتر موارد این یک مسئله بزرگ نیست، اما ارزش فکر کردن دارد.
  • شما به داده خود از طریق مجموعه ابزارهای اختصاصی ایجاد شده توسط ارائه‌دهنده خود دسترسی خواهید داشت، و این می‌تواند یک کیف مختلط باشد. در بیشتر موارد شما در نهایت با دیوارهایی در مورد آنچه می‌توانید انجام دهید برخورد می‌کنید، و فقط باید با آنها زندگی کنید زیرا راهی برای تغییر چیزی ندارید.

هنگام برنامه‌ریزی برای راه‌اندازی خط لوله خود

  • به یاد داشته باشید که برای اجرای این کار باید برخی زیرساخت را اجرا کنید، حتی اگر خدمات مدیریت شده مانند AWS باشد، بنابراین مطمئن شوید که برخی قابلیت‌های techops اساسی دارید.
  • وسوسه‌انگیز است که فکر کنید به یک مهندس داده نیاز دارید تا این استراتژی تحلیل را اجرا کنید، اما اگر چیزها را ساده نگه دارید، اینطور نیست. هیچ دلیلی برای عجله در استخدام مهندسان داده وجود ندارد.
  • روی ایجاد یک الگوی جمع‌آوری داده پایدار و قوی برای شروع تمرکز کنید، زیرا «به معنای واقعی کلمه» همه چیز پایین‌دست از آنجا است. پس از اینکه چیزی محکم برای جمع‌آوری داده در جای خود دارید، می‌توانید چیزهای زیادی روی آن بسازید. انتخاب‌های برتر اینجا AWS Kinesis و Kafka هستند.
  • انتخاب انبار داده شما عمدتاً به حجم داده بستگی دارد. برای حجم‌های کوچک با ساده‌ترین ابزارها مانند پایگاه‌های داده SQL منبع باز بمانید. وقتی از آن فراتر رفتید، به دنبال یک DWH تحلیل خواهید بود، که انتخاب‌های زیادی دارد: AWS Redshift، Vertica، ParAccel و Terradata از نام‌های بزرگ هستند. همچنین ابزارهای جدیدتری مانند Spark، Presto، Impala و Druid وجود دارند.
  • همه می‌خواهند خط لوله داده آنها زمان واقعی باشد (به این معنی که داده بلافاصله برای تحلیل آماده است) اما قطعاً کار بیشتری برای اجرا دارد، بنابراین زود تصمیم بگیرید که آیا برای شما ارزش دارد. برای انجام این کار اغلب نیاز به ابزارهای تخصصی و پیکربندی خط لوله متفاوت دارید، بنابراین آن را در نظر بگیرید.

منابع الهام