Zerobus Ingest: استریم پتابایتی دیتابریکس
خلاصهٔ کاملتر
دیتابریکس Zerobus Ingest رو بهعنوان یه سرویس استریم سرورلس و کاملاً مدیریتشده معرفی کرده که مستقیم روی جدولهای دلتا و زیر نظر Unity Catalog مینویسه. به گفتهٔ تیم دیتابریکس، دیگه لازم نیست کافکا رو بهعنوان یه لولهٔ واسط بین منبع داده و لیکهاوس نگه داری؛ کافیه یه جدول بسازی و مستقیم داده رو push کنی، همون لحظه قابل کوئری میشه.
برای تست این ادعا، تیم از دیتاست NEOWISE ناسا استفاده کرده، چیزی حدود ۲۰۰ میلیارد رکورد جمعآوریشده طی ۱۱ سال، و تونسته ۱ پتابایت داده رو زیر ۲۴ ساعت، بدون هیچ تنظیم اولیهای، وارد یه جدول واحد کنه. نتیجه: توان عملیاتی پایدار ۱۲ گیگابایت در ثانیه و در مجموع بیش از یک تریلیون رکورد طی همون ۲۴ ساعت.
نویسندهها توضیح میدن مشکل معماریهای استریم سنتی اینه که پارتیشن هم واحد موازیسازیه هم واحد تضمین ترتیب؛ یعنی از اول باید تعداد پارتیشن رو بر اساس اوج بار حدس بزنی و عملاً بعدش نمیتونی کمش کنی. Zerobus این تضمین ترتیب رو از سطح پارتیشن به سطح یه اتصال استریم منتقل کرده؛ وقتی یه producer یه استریم باز میکنه، تا وقتی همون اتصال زندهست ترتیب دادههاش تضمینه، فارغ از اینکه کدوم pod پشت صحنه داره پردازشش میکنه.
همین جابهجایی باعث auto-scaling واقعی میشه: وقتی بار زیاد میشه pod اضافه میشه، وقتی کم میشه استریمهای قدیمی تخلیه میشن و pod آزاد میشه. یکی دیگه از تصمیمهای فنی، ساخت یه دیکودر پروتوباف اختصاصی به اسم Zeroparser بوده. دیکودرهای معمولی یا باید موقع کامپایل شمای داده رو بدونن (سریع ولی غیرمنعطف) یا از reflection موقع اجرا استفاده کنن (منعطف ولی کند و پرتخصیص حافظه).
چون Zerobus شمای داده رو از کاربر و در زمان اجرا میگیره، تیم یه parser تکپاسی و بدون تخصیص حافظه نوشته که با وجود پویا بودن، به گفتهٔ خودشون در حد ۱ گیگابایت در ثانیه پروتوباف رو روی هر هستهٔ CPU پردازش میکنه، سریعتر از راهحلهای codegen رقیب. این کد بهصورت متنباز تو SDK Zerobus منتشر شده.
برای تحویل کمتاخیر و مطمئن داده، Zerobus یه write-ahead log بهینهشده برای تاخیر داره. بهجای تایید تکتک رکوردها، سرور بالاترین offset تثبیتشده رو برمیگردونه و کلاینت هرچی تا اون offset تو بافرش داشته با خیال راحت پاک میکنه؛ همون تضمین durability و تاخیر پایینی که تیمها معمولاً برای همینش سراغ کافکا میرن.
Zerobus Ingest الان بهصورت عمومی (GA) روی دیتابریکس در دسترسه. تیم میگه در ادامه پشتیبانی از Kafka Producer API، MQTT، ستون rescue و فرمت Avro هم به نقشهٔ راه اضافه میشه.
نکات کلیدی:
- Zerobus Ingest سرویس استریم سرورلس دیتابریکس، بدون نیاز به تنظیم پارتیشن یا بروکر
- توان عملیاتی پایدار ۱۲ گیگابایت در ثانیه روی یه جدول، تستشده با ۱ پتابایت داده از دیتاست ناسا
- تضمین ترتیب از سطح پارتیشن به سطح اتصال استریم منتقل شده تا auto-scaling واقعی ممکن بشه
- دیکودر متنباز Zeroparser، پردازش پروتوباف بدون تخصیص حافظه با شمای پویا
- سرویس همین الان GA-ست؛ پشتیبانی از Kafka API، MQTT و Avro هم در راهه




