เฮ้ ฮาเบอร์! การลงทะเบียนสำหรับสตรีมหลักสูตรใหม่เปิดอยู่ที่ OTUS ในขณะนี้
การจัดการข้อมูล
การกำกับดูแลข้อมูลที่แข็งแกร่งเป็นหลักสำคัญของวิศวกรรม Twitter ขณะที่เราใช้ BigQuery ในแพลตฟอร์มของเรา เรามุ่งเน้นไปที่การค้นพบข้อมูล การควบคุมการเข้าถึง ความปลอดภัย และความเป็นส่วนตัว
เพื่อค้นหาและจัดการข้อมูล เราได้ขยาย Data Access Layer ของเราเป็น
BigQuery ช่วยให้แชร์และเข้าถึงข้อมูลได้ง่าย แต่เราจำเป็นต้องควบคุมสิ่งนี้เพื่อป้องกันการขโมยข้อมูล ในบรรดาเครื่องมืออื่นๆ เราเลือกสองฟังก์ชัน:
การแชร์แบบจำกัดโดเมน : คุณลักษณะเบต้าเพื่อป้องกันไม่ให้ผู้ใช้แชร์ชุดข้อมูล BigQuery กับผู้ใช้ภายนอก Twitterการควบคุมบริการ VPC : การควบคุมที่ป้องกันการขโมยข้อมูลและกำหนดให้ผู้ใช้เข้าถึง BigQuery จากช่วงที่อยู่ IP ที่รู้จัก
เราได้ใช้ข้อกำหนดการรับรองความถูกต้อง การอนุญาต และการตรวจสอบ (AAA) เพื่อความปลอดภัยดังต่อไปนี้:
- การตรวจสอบสิทธิ์: เราใช้บัญชีผู้ใช้ GCP สำหรับคำขอเฉพาะกิจและบัญชีบริการสำหรับคำขอการผลิต
- การอนุญาต: เรากำหนดให้แต่ละชุดข้อมูลต้องมีบัญชีบริการของเจ้าของและกลุ่มผู้อ่าน
- การตรวจสอบ: เราส่งออกบันทึก BigQuery Stackdriver ซึ่งมีข้อมูลการดำเนินการค้นหาโดยละเอียด ไปยังชุดข้อมูล BigQuery เพื่อการวิเคราะห์ที่ง่ายดาย
เพื่อให้มั่นใจว่าข้อมูลส่วนบุคคลของผู้ใช้ Twitter ได้รับการจัดการอย่างเหมาะสม เราต้องลงทะเบียนชุดข้อมูล BigQuery ทั้งหมด ใส่คำอธิบายประกอบข้อมูลส่วนบุคคล ดูแลรักษาพื้นที่จัดเก็บที่เหมาะสม และลบ (ขูด) ข้อมูลที่ถูกลบโดยผู้ใช้
เราก็ดูที่กูเกิ้ล
ที่ Twitter เราได้สร้างหมวดหมู่ความเป็นส่วนตัวสี่หมวดหมู่สำหรับชุดข้อมูลใน BigQuery ซึ่งแสดงรายการไว้ที่นี่โดยเรียงตามระดับความละเอียดอ่อนจากมากไปน้อย:
- ชุดข้อมูลที่ละเอียดอ่อนสูงจะพร้อมใช้งานตามความจำเป็นโดยยึดหลักการของสิทธิ์ขั้นต่ำ ชุดข้อมูลแต่ละชุดมีกลุ่มผู้อ่านแยกกัน และเราจะติดตามการใช้งานตามแต่ละบัญชี
- ชุดข้อมูลที่มีความอ่อนไหวปานกลาง (นามแฝงทางเดียวที่ใช้การแฮชแบบเค็ม) ไม่มีข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้ (PII) และพนักงานกลุ่มใหญ่สามารถเข้าถึงได้ นี่เป็นความสมดุลที่ดีระหว่างข้อกังวลด้านความเป็นส่วนตัวและยูทิลิตี้ข้อมูล ช่วยให้พนักงานสามารถดำเนินการวิเคราะห์ได้ เช่น การคำนวณจำนวนผู้ใช้ที่ใช้ฟีเจอร์ โดยไม่รู้ว่าใครคือผู้ใช้จริง
- ชุดข้อมูลความไวต่ำพร้อมข้อมูลการระบุผู้ใช้ทั้งหมด นี่เป็นแนวทางที่ดีจากมุมมองความเป็นส่วนตัว แต่ไม่สามารถใช้สำหรับการวิเคราะห์ระดับผู้ใช้ได้
- ชุดข้อมูลสาธารณะ (เผยแพร่นอก Twitter) มีให้สำหรับพนักงาน Twitter ทุกคน
สำหรับการบันทึก เราใช้งานตามกำหนดเวลาเพื่อระบุชุดข้อมูล BigQuery และลงทะเบียนกับ Data Access Layer (
การทำงานของระบบ
เนื่องจาก BigQuery เป็นบริการที่มีการจัดการ จึงไม่จำเป็นต้องให้ทีม SRE ของ Twitter เข้ามามีส่วนร่วมในการจัดการระบบหรือหน้าที่โต๊ะ เป็นเรื่องง่ายที่จะเพิ่มความจุให้กับทั้งการจัดเก็บข้อมูลและการประมวลผล เราสามารถเปลี่ยนแปลงการจองช่องได้โดยสร้างตั๋วกับฝ่ายสนับสนุนของ Google เราระบุส่วนที่สามารถปรับปรุงได้ เช่น การจัดสรรช่องบริการตนเองและการปรับปรุงแดชบอร์ดสำหรับการตรวจสอบ และส่งคำขอเหล่านั้นไปยัง Google
ค่าใช้จ่ายของ
การวิเคราะห์เบื้องต้นของเราแสดงให้เห็นว่าต้นทุนการค้นหาสำหรับ BigQuery และ Presto อยู่ในระดับเดียวกัน เราซื้อสล็อตสำหรับ
การจัดเก็บข้อมูลใน BigQuery มีค่าใช้จ่ายเพิ่มเติมนอกเหนือจากค่าใช้จ่าย GCS เครื่องมืออย่าง Scalding ต้องใช้ชุดข้อมูลใน GCS และในการเข้าถึง BigQuery เราต้องโหลดชุดข้อมูลเดียวกันเป็นรูปแบบ BigQuery
สำหรับกรณีที่ไม่ค่อยพบบ่อยซึ่งจำเป็นต้องมีการสืบค้นขนาดหลายสิบเพตะไบต์ไม่บ่อยนัก เราตัดสินใจว่าการจัดเก็บชุดข้อมูลใน BigQuery นั้นไม่คุ้มต้นทุน และใช้ Presto เพื่อเข้าถึงชุดข้อมูลใน GCS โดยตรง เพื่อดำเนินการนี้ เรากำลังดูที่แหล่งข้อมูลภายนอกของ BigQuery
ขั้นตอนถัดไป
เราได้เห็นความสนใจอย่างมากใน BigQuery นับตั้งแต่เปิดตัวรุ่นอัลฟ่า เรากำลังเพิ่มชุดข้อมูลและคำสั่งเพิ่มเติมให้กับ BigQuery เราพัฒนาตัวเชื่อมต่อสำหรับเครื่องมือวิเคราะห์ข้อมูล เช่น Scalding เพื่ออ่านและเขียนไปยังพื้นที่เก็บข้อมูล BigQuery เรากำลังพิจารณาเครื่องมืออย่าง Looker และ Apache Zeppelin สำหรับสร้างรายงานและบันทึกคุณภาพระดับองค์กรโดยใช้ชุดข้อมูล BigQuery
ความร่วมมือของเรากับ Google ได้ผลดีมาก และเรายินดีที่จะสานต่อและพัฒนาความร่วมมือนี้ต่อไป เราทำงานร่วมกับ Google เพื่อดำเนินการของเราเอง
ต่อไปนี้คือคำขอคุณลักษณะที่มีลำดับความสำคัญสูงบางส่วนของเราสำหรับ Google:
- เครื่องมือสำหรับการรับข้อมูลที่สะดวกและรองรับรูปแบบ LZO-Thrift
- การแบ่งส่วนรายชั่วโมง
- การปรับปรุงการควบคุมการเข้าถึง เช่น สิทธิ์ระดับตาราง แถว และคอลัมน์
- BigQuery
แหล่งข้อมูลภายนอก ด้วยการรวม Hive Metastore และรองรับรูปแบบ LZO-Thrift - ปรับปรุงการผสานรวมแคตตาล็อกข้อมูลในอินเทอร์เฟซผู้ใช้ BigQuery
- บริการตนเองสำหรับการจัดสรรและติดตามสล็อต
ข้อสรุป
การทำให้การวิเคราะห์ข้อมูล การแสดงภาพ และการเรียนรู้ของเครื่องจักรเป็นประชาธิปไตยในวิธีที่ปลอดภัยถือเป็นสิ่งสำคัญสูงสุดสำหรับทีมแพลตฟอร์มข้อมูล เราระบุว่า Google BigQuery และ Data Studio เป็นเครื่องมือที่ช่วยให้บรรลุเป้าหมายนี้ได้ และเปิดตัว BigQuery Alpha ทั่วทั้งบริษัทเมื่อปีที่แล้ว
เราพบว่าข้อความค้นหาใน BigQuery นั้นเรียบง่ายและมีประสิทธิภาพ เราใช้เครื่องมือของ Google เพื่อนำเข้าและแปลงข้อมูลสำหรับไปป์ไลน์แบบธรรมดา แต่สำหรับไปป์ไลน์ที่ซับซ้อน เราจำเป็นต้องสร้างเฟรมเวิร์ก Airflow ของเราเอง ในด้านการจัดการข้อมูล บริการของ BigQuery สำหรับการตรวจสอบสิทธิ์ การให้สิทธิ์ และการตรวจสอบตรงตามความต้องการของเรา ในการจัดการข้อมูลเมตาและรักษาความเป็นส่วนตัว เราต้องการความยืดหยุ่นมากขึ้นและต้องสร้างระบบของเราเอง BigQuery ซึ่งเป็นบริการที่มีการจัดการนั้นใช้งานง่าย ต้นทุนการค้นหาใกล้เคียงกับเครื่องมือที่มีอยู่ การจัดเก็บข้อมูลใน BigQuery มีค่าใช้จ่ายเพิ่มเติมจากค่าใช้จ่าย GCS
โดยรวมแล้ว BigQuery ทำงานได้ดีสำหรับการวิเคราะห์ SQL ทั่วไป เราเห็นความสนใจอย่างมากใน BigQuery และเรากำลังดำเนินการเพื่อย้ายชุดข้อมูลมากขึ้น ดึงดูดทีมมากขึ้น และสร้างไปป์ไลน์เพิ่มเติมด้วย BigQuery Twitter ใช้ข้อมูลที่หลากหลายซึ่งจะต้องมีเครื่องมือหลายอย่างรวมกัน เช่น Scalding, Spark, Presto และ Druid เราตั้งใจที่จะเสริมความแข็งแกร่งให้กับเครื่องมือวิเคราะห์ข้อมูลของเราต่อไป และให้คำแนะนำที่ชัดเจนแก่ผู้ใช้ของเราเกี่ยวกับวิธีใช้ข้อเสนอของเราให้เกิดประโยชน์สูงสุด
คำขอบคุณ
ฉันขอขอบคุณผู้เขียนร่วมและเพื่อนร่วมทีม Anju Jha และ Will Pascucci สำหรับความร่วมมือที่ยอดเยี่ยมและการทำงานหนักในโครงการนี้ ฉันขอขอบคุณวิศวกรและผู้จัดการจากหลายทีมของ Twitter และ Google ที่ช่วยเหลือเราและผู้ใช้ BigQuery บน Twitter ที่ให้ข้อเสนอแนะอันมีค่า
หากคุณสนใจที่จะแก้ไขปัญหาเหล่านี้ ลองดูของเรา
ที่มา: will.com