اقرأ الجزء الأول
إدارة البيانات
الإدارة القوية للبيانات هي المبدأ الرئيسي لهندسة تويتر. نظرًا لأننا ننفذ BigQuery في نظامنا الأساسي ، فإننا نركز على اكتشاف البيانات والتحكم في الوصول والأمان والخصوصية.
لاكتشاف البيانات وإدارتها ، قمنا بتوسيع طبقة الوصول إلى البيانات ( DAL ) لدينا لتوفير أدوات لكل من البيانات المحلية وبيانات Google Cloud ، مما يوفر واجهة واحدة وواجهة برمجة تطبيقات لمستخدمينا. نظرًا لأن كتالوج بيانات Google يتجه نحو التوفر العام ، فسوف نقوم بتضمينه في مشاريعنا لتزويد المستخدمين بميزات مثل البحث في العمود.
يعمل BigQuery على تسهيل مشاركة البيانات والوصول إليها ، ولكننا كنا بحاجة إلى بعض التحكم لمنع استخراج البيانات. من بين الأدوات الأخرى ، اخترنا وظيفتين:
- المشاركة المقيدة بالمجال : ميزة تجريبية تمنع المستخدمين من مشاركة مجموعات بيانات BigQuery مع مستخدمين خارج Twitter.
- عناصر تحكم خدمة VPC : عنصر تحكم يمنع استخراج البيانات ويتطلب من المستخدمين الوصول إلى BigQuery من نطاقات IP المعروفة.
لقد قمنا بتنفيذ متطلبات أمان المصادقة والتفويض والتدقيق (AAA) على النحو التالي:
- المصادقة: استخدمنا حسابات مستخدمي GCP للطلبات المخصصة وحسابات الخدمة لطلبات العمل.
- التفويض: طلبنا أن يكون لكل مجموعة بيانات حساب خدمة مالك ومجموعة من القراء.
- : BigQuery, , BigQuery .
لضمان التعامل مع البيانات الشخصية لمستخدمي Twitter بشكل صحيح ، يجب علينا تسجيل جميع مجموعات بيانات BigQuery ، وإضافة تعليقات توضيحية إلى البيانات الشخصية ، والحفاظ على التخزين المناسب ، وحذف (تنظيف) البيانات التي تم حذفها بواسطة المستخدمين.
راجعنا واجهة برمجة تطبيقات Google Cloud Data Loss Prevention API ، والتي تستخدم التعلم الآلي لتصنيف البيانات الحساسة وتعديلها ، لكننا اخترنا التعليقات التوضيحية اليدوية لمجموعة البيانات نظرًا لدقتها. نخطط لاستخدام واجهة برمجة تطبيقات منع فقدان البيانات لاستكمال التعليق التوضيحي المخصص.
على Twitter ، أنشأنا أربع فئات خصوصية لمجموعات بيانات BigQuery ، مدرجة هنا بترتيب تنازلي من الحساسية:
- . , .
- ( ) (Personally Identifiable Information — PII) . . , , , , .
- , . , .
- ( Twitter) Twitter.
قبل التسجيل ، استخدمنا المهام المجدولة لتعداد مجموعات بيانات BigQuery وتسجيلها في طبقة الوصول إلى البيانات ( DAL ) ، مخزن البيانات الوصفية على Twitter. سيقوم المستخدمون بتعليق مجموعات البيانات بمعلومات السرية بالإضافة إلى فترات الاحتفاظ. أما بالنسبة للتنقية ، فنحن نقدر أداء وتكلفة خيارين: 1. تنقية مجموعات البيانات في GCS باستخدام أدوات مثل Scalding وتحميلها في BigQuery ؛ 2. استخدام عوامل تشغيل BigQuery DML. من المحتمل أن نستخدم مزيجًا من كلتا الطريقتين لتلبية متطلبات المجموعات والبيانات المختلفة.
وظائف النظام
نظرًا لأن BigQuery خدمة مُدارة ، فلم تكن هناك حاجة لإشراك فريق SRE في Twitter في إدارة الأنظمة أو واجبات العمل. كان من السهل توفير سعة أكبر لكل من التخزين والحوسبة. يمكننا تغيير حجوزات الفتحات من خلال إنشاء تذاكر في دعم Google. لقد توصلنا إلى ما يمكن تحسينه ، مثل الخدمة الذاتية لتخصيص الفتحات ولوحات معلومات مراقبة أفضل ، وقمنا بتمرير هذه الطلبات إلى Google.
التكلفة
أظهر تحليلنا الأولي أن تكلفة طلبات البحث عن BigQuery و Presto كانت على نفس المستوى. اشترينا فتحات بسعر ثابت للحصول على تكلفة شهرية مستقرة بدلاً من الدفع عند الطلب مقابل تيرابايت من البيانات المعالجة. استند هذا القرار أيضًا إلى تعليقات المستخدمين الذين لم يرغبوا في التفكير في التكاليف قبل تقديم كل طلب.
جلب تخزين البيانات في BigQuery تكاليف بالإضافة إلى تكاليف GCS. تتطلب أدوات مثل Scalding مجموعات بيانات في GCS ، وللوصول إلى BigQuery ، كان علينا تحميل مجموعات البيانات نفسها بتنسيق BigQuery Capacitor... نحن نعمل على اتصال Scalding بمجموعات بيانات BigQuery مما يلغي الحاجة إلى تخزين مجموعات البيانات في كل من GCS و BigQuery.
في الحالات النادرة التي تطلبت طلبات غير متكررة لعشرات البيتابايتات ، قررنا أن تخزين مجموعات البيانات في BigQuery لم يكن فعالًا من حيث التكلفة واستخدمنا Presto للوصول مباشرة إلى مجموعات البيانات في GCS. للقيام بذلك ، نحن نبحث في مصادر البيانات الخارجية في BigQuery.
الخطوات التالية
لقد لاحظنا الكثير من الاهتمام باستخدام BigQuery منذ إصدار ألفا. نضيف المزيد من مجموعات البيانات والمزيد من الأوامر إلى BigQuery. نعمل على تطوير موصلات لأدوات تحليل البيانات مثل Scalding للقراءة والكتابة في مساحة تخزين BigQuery. نحن نبحث في أدوات مثل Looker و Apache Zeppelin لإنشاء تقارير وملاحظات حول جودة الشركة باستخدام مجموعات بيانات BigQuery.
لقد كانت الشراكة مع Google مثمرة للغاية ويسعدنا مواصلة هذه الشراكة وتطويرها. لقد عملنا مع Google لتنفيذ برنامج Partner Issue Tracker الخاص بنا لإرسال الطلبات إلى Google مباشرةً. بعضها ، مثل BigQuery Parquet Downloader ، تم تنفيذه بالفعل بواسطة Google.
فيما يلي بعض طلبات الميزات ذات الأولوية العالية الخاصة بنا إلى Google:
- أدوات لسهولة استيعاب البيانات ودعم تنسيق LZO-Thrift.
- تجزئة كل ساعة
- تحسينات التحكم في الوصول مثل أذونات الجدول والصف والعمود.
- مصادر البيانات الخارجية BigQuery مع تكامل Hive Metastore ودعم تنسيق LZO-Thrift.
- تحسين تكامل كتالوج البيانات في BigQuery UI
- الخدمة الذاتية لتخصيص الخانات الزمنية ومراقبتها.
خاتمة
يعد إضفاء الطابع الديمقراطي على تحليل البيانات والتصور والتعلم الآلي بطريقة آمنة أولوية قصوى لفريق Data Platform. حددنا Google BigQuery و Data Studio كأدوات يمكن أن تساعدنا في تحقيق هذا الهدف ، وأصدرنا BigQuery Alpha للشركة بأكملها في العام الماضي.
وجدنا أن استعلامات BigQuery كانت بسيطة وفعالة. لتلقي البيانات وتحويلها ، استخدمنا أدوات Google لخطوط الأنابيب البسيطة ، ولكن بالنسبة لخطوط الأنابيب المعقدة ، كان علينا إنشاء البنية التحتية Airflow الخاصة بنا. في إدارة البيانات ، تلبي خدمات BigQuery للمصادقة والتفويض والتدقيق احتياجاتنا. كنا بحاجة إلى قدر كبير من المرونة لإدارة البيانات الوصفية والحفاظ على السرية ، وكان علينا بناء أنظمتنا الخاصة. كانت BigQuery خدمة مُدارة سهلة الاستخدام. كانت تكاليف الطلب مماثلة للأدوات الموجودة. يؤدي تخزين البيانات في BigQuery إلى تكبد تكاليف بالإضافة إلى تكلفة GCS.
بشكل عام ، يعمل BigQuery جيدًا لتحليل SQL العام. لقد لاحظنا قدرًا كبيرًا من الاهتمام باستخدام BigQuery ، ونعمل على ترحيل المزيد من مجموعات البيانات وإشراك المزيد من الفرق وإنشاء المزيد من خطوط الأنابيب باستخدام BigQuery. يستخدم Twitter مجموعة متنوعة من البيانات ، والتي ستتطلب مزيجًا من الأدوات مثل Scalding و Spark و Presto و Druid. نعتزم مواصلة البناء على أدوات تحليل البيانات الخاصة بنا وتقديم إرشادات واضحة لمستخدمينا حول أفضل السبل لاستخدام عروضنا.
كلمات شكر
أود أن أشكر المتعاونين معي وزملائي ، Anjou Jha و Will Pascucci ، على تعاونهم الرائع وعملهم الجاد في هذا المشروع. أود أيضًا أن أشكر المهندسين والمديرين من عدة فرق على Twitter و Google الذين ساعدونا ومستخدمي BigQuery Twitter الذين قدموا تعليقات قيمة.
إذا كنت مهتمًا بالعمل على هذه المهام ، فتحقق من الوظائف الشاغرة لدينا في فريق Data Platform.
جودة بيانات DWH - تناسق مستودع البيانات