BIGDATA_IR Telegram 403
چگونه با ClickHouse زیرساخت کمپین بازاریابی شخصی‌سازی‌شده اسنپ! مارکت را طراحی کردیم؟ 🎯

این مقاله ترجمه ای است از :

https://medium.com/@prmbas/clickhouse-in-the-wild-an-odyssey-through-our-data-driven-marketing-campaign-in-q-commerce-93c2a2404a39

در جریان طراحی و اجرای کمپین «سوپرسنج» در اسنپ! مارکت، هدف ما خلق تجربه‌ای متفاوت و هوشمندانه برای میلیون‌ها کاربر بود؛ تجربه‌ای که با تحلیل رفتار خرید واقعی مشتریان و بهره‌گیری از الگوریتم‌های یادگیری ماشین و هوش مصنوعی، به‌شکل شخصی و سرگرم‌کننده ارائه می‌شد.

برای رسیدن به این هدف، طراحی یک زیرساخت داده‌ای مقیاس‌پذیر و تحلیلی ضروری بود؛ زیرساختی که بتواند حجم بالایی از داده‌های سفارش، محصول، رفتار مشتری و تعاملات کمپین را در زمان محدود پردازش کند. ما تصمیم گرفتیم از #ClickHouse به‌عنوان موتور پردازش تحلیلی اصلی استفاده کنیم.

📦 کمپین سوپرسنج: شخصیت خرید شما چیست؟

سوپرسنج یک کمپین خلاقانه و داده‌محور بود که با الهام از تست‌های #MBTI، پرتره‌ای طنز و شخصی‌سازی‌شده از کاربران اسنپ! مارکت ارائه می‌داد. این پرتره با تحلیل واقعی رفتار خرید مشتریان و به‌کمک هوش مصنوعی تولید می‌شد.

اجزای اصلی کمپین:

🧑‍💼 پروفایل شخصی: آمارهایی مثل تاریخ اولین سفارش، مجموع کوپن‌های استفاده‌شده و مسافت طی‌شده توسط پیک‌ها

🧠 تست شخصیت خرید: تخصیص تیپ‌های شخصیتی بر اساس رفتار خرید (مثلاً «تنقلاتی راحت‌طلب» یا «قهوه‌دوست اقتصادی»)

🤖 محتوای طنز با هوش مصنوعی: تولید دیالوگ و داستان کوتاه بر اساس داده‌های مشتری، با استفاده از LLMها


🔧 ساختار فنی: معماری چندلایه پردازش داده

برای پشتیبانی از چنین تجربه‌ای، ما لایه‌های مختلفی از پردازش داده را در نظر گرفتیم:

🟫 لایه برنز : داده‌های خام شامل سفارش‌ها، اطلاعات کاربران، و متادیتاهای مربوط به محصولات در بازه‌ای چهارساله

🟪 لایه نقره: پردازش‌های تحلیلی میانی با استفاده از SQL و Python، ذخیره‌شده به‌شکل فایل‌های Parquet

🟨 لایه طلا : خروجی نهایی شامل برچسب‌های شخصیتی، آمار اختصاصی، و JSONهایی که به مدل‌های زبانی برای تولید متن تزریق می‌شد

⚠️ چالش فنی: جوین‌های سنگین و مصرف بالای حافظه

در مراحل اولیه، از الگوریتم پیش‌فرض Join در ClickHouse استفاده کردیم. اما با رشد داده‌ها و افزایش پیچیدگی کوئری‌ها، مصرف حافظه سر به فلک کشید و در مواردی منجر به کرش شد.

برای حل این مشکل، با بررسی دقیق مستندات ClickHouse و رفتارهای کوئری، به الگوریتم partial_merge مهاجرت کردیم.

‍‍‍-- changing join algorithm in the current CLI session
SET join_algortim = 'partial_merge';

-- data easlity stored in a parquet file
-- default path: /var/lib/clickhouse/user_files
INSERT INTO FUNCTION file('temp_data.parquet', Parquet)
SELECT *
FROM [db1].[table1] AS t1
LEFT JOIN [db2].[table2] AS t2 ON t1.[column1] = t2.[column2];


نتیجه:

💥پایداری بیشتر در کوئری‌های سنگین

💥کاهش چشمگیر استفاده از RAM

💥حذف نیاز به ایجاد جداول staging برای ترکیب داده‌ها


🚀 قابلیت‌های ویژه ClickHouse که بهره‌برداری کردیم:

🌱 خواندن مستقیم فایل‌های Parquet از مسیرهای محلی و شبکه‌ای

🌱 توابع تحلیلی سطح بالا مانند argMax, groupArray, corr, toStartOfInterval

🌱 پشتیبانی بومی از JSON و آرایه‌ها برای ذخیره داده‌های ساخت‌یافته در فرمت نیمه‌ساخت‌یافته

🌱 اتصال Real-time به داشبورد Grafana برای مشاهده نتایج و رفتار کمپین در زمان اجرا

📈 نتیجه نهایی


کمپین سوپرسنج با مشارکت بیش از ۱۰۰ هزار کاربر در مدتی کوتاه، به‌عنوان یکی از موفق‌ترین کمپین‌های داده‌محور در صنعت تجارت الکترونیک ایران شناخته شد. این موفقیت تنها به دلیل طراحی خلاقانه و محتوای طنز نبود؛ بلکه به لطف یک زیرساخت داده‌ای دقیق، سریع، و بومی‌سازی‌شده به دست آمد — زیرساختی که علی‌رغم نبود زیرساخت‌های ابری بین‌المللی، بر پایه ابزارهای متن‌باز مانند ClickHouse توسعه یافت و در مقیاس وسیع به‌کار گرفته شد.



tgoop.com/bigdata_ir/403
Create:
Last Update:

چگونه با ClickHouse زیرساخت کمپین بازاریابی شخصی‌سازی‌شده اسنپ! مارکت را طراحی کردیم؟ 🎯

این مقاله ترجمه ای است از :

https://medium.com/@prmbas/clickhouse-in-the-wild-an-odyssey-through-our-data-driven-marketing-campaign-in-q-commerce-93c2a2404a39

در جریان طراحی و اجرای کمپین «سوپرسنج» در اسنپ! مارکت، هدف ما خلق تجربه‌ای متفاوت و هوشمندانه برای میلیون‌ها کاربر بود؛ تجربه‌ای که با تحلیل رفتار خرید واقعی مشتریان و بهره‌گیری از الگوریتم‌های یادگیری ماشین و هوش مصنوعی، به‌شکل شخصی و سرگرم‌کننده ارائه می‌شد.

برای رسیدن به این هدف، طراحی یک زیرساخت داده‌ای مقیاس‌پذیر و تحلیلی ضروری بود؛ زیرساختی که بتواند حجم بالایی از داده‌های سفارش، محصول، رفتار مشتری و تعاملات کمپین را در زمان محدود پردازش کند. ما تصمیم گرفتیم از #ClickHouse به‌عنوان موتور پردازش تحلیلی اصلی استفاده کنیم.

📦 کمپین سوپرسنج: شخصیت خرید شما چیست؟

سوپرسنج یک کمپین خلاقانه و داده‌محور بود که با الهام از تست‌های #MBTI، پرتره‌ای طنز و شخصی‌سازی‌شده از کاربران اسنپ! مارکت ارائه می‌داد. این پرتره با تحلیل واقعی رفتار خرید مشتریان و به‌کمک هوش مصنوعی تولید می‌شد.

اجزای اصلی کمپین:

🧑‍💼 پروفایل شخصی: آمارهایی مثل تاریخ اولین سفارش، مجموع کوپن‌های استفاده‌شده و مسافت طی‌شده توسط پیک‌ها

🧠 تست شخصیت خرید: تخصیص تیپ‌های شخصیتی بر اساس رفتار خرید (مثلاً «تنقلاتی راحت‌طلب» یا «قهوه‌دوست اقتصادی»)

🤖 محتوای طنز با هوش مصنوعی: تولید دیالوگ و داستان کوتاه بر اساس داده‌های مشتری، با استفاده از LLMها


🔧 ساختار فنی: معماری چندلایه پردازش داده

برای پشتیبانی از چنین تجربه‌ای، ما لایه‌های مختلفی از پردازش داده را در نظر گرفتیم:

🟫 لایه برنز : داده‌های خام شامل سفارش‌ها، اطلاعات کاربران، و متادیتاهای مربوط به محصولات در بازه‌ای چهارساله

🟪 لایه نقره: پردازش‌های تحلیلی میانی با استفاده از SQL و Python، ذخیره‌شده به‌شکل فایل‌های Parquet

🟨 لایه طلا : خروجی نهایی شامل برچسب‌های شخصیتی، آمار اختصاصی، و JSONهایی که به مدل‌های زبانی برای تولید متن تزریق می‌شد

⚠️ چالش فنی: جوین‌های سنگین و مصرف بالای حافظه

در مراحل اولیه، از الگوریتم پیش‌فرض Join در ClickHouse استفاده کردیم. اما با رشد داده‌ها و افزایش پیچیدگی کوئری‌ها، مصرف حافظه سر به فلک کشید و در مواردی منجر به کرش شد.

برای حل این مشکل، با بررسی دقیق مستندات ClickHouse و رفتارهای کوئری، به الگوریتم partial_merge مهاجرت کردیم.


‍‍‍-- changing join algorithm in the current CLI session
SET join_algortim = 'partial_merge';

-- data easlity stored in a parquet file
-- default path: /var/lib/clickhouse/user_files
INSERT INTO FUNCTION file('temp_data.parquet', Parquet)
SELECT *
FROM [db1].[table1] AS t1
LEFT JOIN [db2].[table2] AS t2 ON t1.[column1] = t2.[column2];


نتیجه:

💥پایداری بیشتر در کوئری‌های سنگین

💥کاهش چشمگیر استفاده از RAM

💥حذف نیاز به ایجاد جداول staging برای ترکیب داده‌ها


🚀 قابلیت‌های ویژه ClickHouse که بهره‌برداری کردیم:

🌱 خواندن مستقیم فایل‌های Parquet از مسیرهای محلی و شبکه‌ای

🌱 توابع تحلیلی سطح بالا مانند argMax, groupArray, corr, toStartOfInterval

🌱 پشتیبانی بومی از JSON و آرایه‌ها برای ذخیره داده‌های ساخت‌یافته در فرمت نیمه‌ساخت‌یافته

🌱 اتصال Real-time به داشبورد Grafana برای مشاهده نتایج و رفتار کمپین در زمان اجرا

📈 نتیجه نهایی


کمپین سوپرسنج با مشارکت بیش از ۱۰۰ هزار کاربر در مدتی کوتاه، به‌عنوان یکی از موفق‌ترین کمپین‌های داده‌محور در صنعت تجارت الکترونیک ایران شناخته شد. این موفقیت تنها به دلیل طراحی خلاقانه و محتوای طنز نبود؛ بلکه به لطف یک زیرساخت داده‌ای دقیق، سریع، و بومی‌سازی‌شده به دست آمد — زیرساختی که علی‌رغم نبود زیرساخت‌های ابری بین‌المللی، بر پایه ابزارهای متن‌باز مانند ClickHouse توسعه یافت و در مقیاس وسیع به‌کار گرفته شد.

BY مهندسی داده




Share with your friend now:
tgoop.com/bigdata_ir/403

View MORE
Open in Telegram


Telegram News

Date: |

A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Commenting about the court's concerns about the spread of false information related to the elections, Minister Fachin noted Brazil is "facing circumstances that could put Brazil's democracy at risk." During the meeting, the information technology secretary at the TSE, Julio Valente, put forward a list of requests the court believes will disinformation. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. On Tuesday, some local media outlets included Sing Tao Daily cited sources as saying the Hong Kong government was considering restricting access to Telegram. Privacy Commissioner for Personal Data Ada Chung told to the Legislative Council on Monday that government officials, police and lawmakers remain the targets of “doxxing” despite a privacy law amendment last year that criminalised the malicious disclosure of personal information. The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers.
from us


Telegram مهندسی داده
FROM American