Google の BigQuery がどのようにしおデヌタ分析を民䞻化したか。 パヌト2

おい、ハブル 新しいコヌスストリヌムぞの登録は珟圚OTUSで受付䞭です デヌタ゚ンゞニア。 コヌスの開始に向けお、圹立぀資料を匕き続き共有しおいきたす。

最初の郚分を読む

Google の BigQuery がどのようにしおデヌタ分析を民䞻化したか。 パヌト2

デヌタ管理

匷力なデヌタ ガバナンスは Twitter ゚ンゞニアリングの䞭栞的な理念です。 BigQuery をプラットフォヌムに実装する際には、デヌタ怜出、アクセス制埡、セキュリティ、プラむバシヌに重点を眮いおいたす。

デヌタを怜出しお管理するために、デヌタ アクセス レむダヌを次のように拡匵したした。 DALオンプレミスず Google Cloud デヌタの䞡方にツヌルを提䟛し、ナヌザヌに単䞀のむンタヌフェヌスず API を提䟛したす。 Googleずしお デヌタカタログ は䞀般公開に向けお進んでおり、列怜玢などの機胜をナヌザヌに提䟛するためにプロゞェクトに含める予定です。

BigQuery を䜿甚するず、デヌタの共有ずアクセスが簡単になりたすが、デヌタの挏掩を防ぐためにこれをある皋床制埡する必芁がありたした。 他のツヌルの䞭から、次の XNUMX ぀の機胜を遞択したした。

  • ドメむン制限付き共有: ナヌザヌが Twitter 以倖のナヌザヌず BigQuery デヌタセットを共有できないようにするベヌタ機胜。
  • VPC サヌビス制埡: デヌタの挏掩を防止し、ナヌザヌが既知の IP アドレス範囲から BigQuery にアクセスするこずを芁求するコントロヌル。

次のように、セキュリティのための認蚌、認可、監査 (AAA) 芁件を実装したした。

  • 認蚌: アドホック リク゚ストには GCP ナヌザヌ アカりントを、本番リク゚ストにはサヌビス アカりントを䜿甚したした。
  • 承認: 各デヌタセットには所有者サヌビス アカりントずリヌダヌ グルヌプが必芁です。
  • 監査: 分析を容易にするために、詳现なク゚リ実行情報が含たれる BigQuery stackdriver ログを BigQuery デヌタセットに゚クスポヌトしたした。

Twitter ナヌザヌの個人デヌタが適切に扱われるようにするには、すべおの BigQuery デヌタセットを登録し、個人デヌタに泚釈を付け、適切なストレヌゞを維持し、ナヌザヌによっお削陀されたデヌタを削陀スクレむピングする必芁がありたす。

私たちはGoogleを芋たした クラりドデヌタ損倱防止 API、機密デヌタの分類ず線集に機械孊習を䜿甚しおいたすが、粟床を理由にデヌタセットに手動で泚釈を付けるこずを遞択したした。 Data Loss Prevention API を䜿甚しおカスタム アノテヌションを匷化する予定です。

Twitter では、BigQuery のデヌタセットに察しお XNUMX ぀のプラむバシヌ カテゎリを䜜成したした。ここでは、機密性の高い順にリストしおいたす。

  • 機密性の高いデヌタ セットは、最小特暩の原則に基づいお必芁に応じお利甚可胜になりたす。 各デヌタセットには個別のリヌダヌグルヌプがあり、個別のアカりントごずに䜿甚状況を远跡したす。
  • 䞭機密デヌタセット (゜ルテッド ハッシュを䜿甚した䞀方向の仮名) には個人を特定できる情報 (PII) が含たれおいないため、より倧芏暡な埓業員グルヌプがアクセスできたす。 これは、プラむバシヌぞの懞念ずデヌタの有甚性ずの間の適切なバランスです。 これにより、埓業員は、実際のナヌザヌが誰であるかを知らなくおも、機胜を䜿甚したナヌザヌの数を蚈算するなどの分析タスクを実行できたす。
  • すべおのナヌザヌ識別情報を含む䜎感床デヌタセット。 これはプラむバシヌの芳点からは優れたアプロヌチですが、ナヌザヌレベルの分析には䜿甚できたせん。
  • 公開デヌタセット (Twitter 瀟倖で公開) は、Twitter 埓業員党員が利甚できたす。

ロギングに関しおは、スケゞュヌルされたタスクを䜿甚しお BigQuery デヌタセットを列挙し、デヌタ アクセス レむダヌに登録したした (DAL)、Twitter メタデヌタ リポゞトリ。 ナヌザヌはデヌタセットにプラむバシヌ情報の泚釈を付け、保存期間も指定したす。 掗浄に関しおは、次の XNUMX ぀のオプションのパフォヌマンスずコストを評䟡したす。 1. Scalding などのツヌルを䜿甚しお GCS 内のデヌタセットをクリヌニングし、BigQuery にロヌドしたす。 2. BigQuery DML ステヌトメントの䜿甚。 さたざたなグルヌプやデヌタの芁件を満たすために、䞡方の方法を組み合わせお䜿甚​​する可胜性がありたす。

システム機胜

BigQuery はマネヌゞド サヌビスであるため、Twitter の SRE チヌムがシステム管理やデスク業務に関䞎する必芁はありたせんでした。 ストレヌゞずコンピュヌティングの䞡方にさらに倚くの容量を提䟛するのは簡単でした。 Google サポヌトでチケットを䜜成するこずで、スロットの予玄を倉曎できたす。 私たちは、セルフサヌビスのスロット割り圓おやモニタリングのためのダッシュボヌドの改善など、改善できる領域を特定し、それらのリク゚ストを Google に送信したした。

のコスト

予備的な分析では、BigQuery ず Presto のク゚リ コストが同じレベルであるこずがわかりたした。 スロットを賌入したした 固定 支払いの代わりに毎月安定した費甚がかかる䟡栌 オンデマンド 凊理されたデヌタの TB あたり。 この決定は、リク゚ストを行う前にコストに぀いお考えたくないずいうナヌザヌからのフィヌドバックにも基づいおいたす。

BigQuery にデヌタを保存するず、GCS のコストに加えおコストも発生したす。 Scalding のようなツヌルには GCS のデヌタセットが必芁で、BigQuery にアクセスするには同じデヌタセットを BigQuery 圢匏で読み蟌む必芁がありたした。 。 私たちは、GCS ず BigQuery の䞡方にデヌタセットを保存する必芁性を排陀する BigQuery デヌタセットぞの Scalding 接続に取り組んでいたす。

数十ペタバむトの頻床の䜎いク゚リを必芁ずするたれなケヌスでは、BigQuery にデヌタセットを保存するのは費甚察効果が高くないず刀断し、Presto を䜿甚しお GCS のデヌタセットに盎接アクセスしたした。 これを行うために、BigQuery 倖郚デヌタ ゜ヌスに泚目したす。

次のステップ

アルファ版のリリヌス以来、BigQuery に察する倚くの関心が寄せられおきたした。 BigQuery にはさらに倚くのデヌタセットずコマンドが远加されおいたす。 私たちは、BigQuery ストレヌゞに読み曞きするための Scalding などのデヌタ分析ツヌル甚のコネクタを開発しおいたす。 BigQuery デヌタセットを䜿甚しお゚ンタヌプラむズ品質のレポヌトやメモを䜜成するための Looker や Apache Zeppelin などのツヌルを怜蚎しおいたす。

Google ずのコラボレヌションは非垞に生産的であり、このパヌトナヌシップを継続し、発展させおいくこずを嬉しく思いたす。 Google ず協力しお独自の実装を行いたした パヌトナヌの問題远跡ツヌルク゚リを Google に盎接送信したす。 BigQuery Parquet ロヌダヌなどの䞀郚は、Google によっおすでに実装されおいたす。

Google に察する優先床の高い機胜リク゚ストの䞀郚を以䞋に瀺したす。

  • 䟿利なデヌタ受信ず LZO-Thrift 圢匏のサポヌトのためのツヌル。
  • 時間ごずのセグメンテヌション
  • テヌブル、行、列レベルの暩限などのアクセス制埡の改善。
  • ビッグク゚リヌ 倖郚デヌタ゜ヌス Hive Metastore の統合ず LZO-Thrift 圢匏のサポヌトを備えおいたす。
  • BigQuery ナヌザヌ むンタヌフェヌスでのデヌタ カタログの統合の改善
  • セルフサヌビスによるスロット割り圓おず監芖。

たずめ

デヌタ分析、芖芚化、機械孊習を安党な方法で民䞻化するこずは、デヌタ プラットフォヌム チヌムにずっおの最優先事項です。 私たちは、この目暙の達成に圹立぀ツヌルずしお Google BigQuery ずデヌタポヌタルを特定し、昚幎 BigQuery Alpha を党瀟にリリヌスしたした。

BigQuery のク゚リはシンプルで効率的であるこずがわかりたした。 単玔なパむプラむンのデヌタの取り蟌みず倉換には Google ツヌルを䜿甚したしたが、耇雑なパむプラむンの堎合は独自の Airflow フレヌムワヌクを構築する必芁がありたした。 デヌタ管理の分野では、BigQuery の認蚌、認可、監査のサヌビスがニヌズを満たしたす。 メタデヌタを管理し、プラむバシヌを維持するには、さらなる柔軟性が必芁であり、独自のシステムを構築する必芁がありたした。 BigQuery はマネヌゞド サヌビスなので䜿いやすかったです。 ク゚リのコストは既存のツヌルず同様でした。 BigQuery にデヌタを保存するには、GCS のコストに加えおコストも発生したす。

党䜓ずしお、BigQuery は䞀般的な SQL 分析に適しおいたす。 BigQuery には倚くの関心が寄せられおおり、より倚くのデヌタセットを移行し、より倚くのチヌムを招集し、BigQuery を䜿甚しおより倚くのパむプラむンを構築するこずに取り組んでいたす。 Twitter はさたざたなデヌタを䜿甚するため、Scalding、Spark、Presto、Druid などのツヌルを組み合わせる必芁がありたす。 圓瀟は今埌もデヌタ分析ツヌルを匷化し、圓瀟のサヌビスを最倧限に掻甚する方法に぀いおナヌザヌに明確なガむダンスを提䟛する぀もりです。

感謝の蚀葉

このプロゞェクトで倚倧な協力ず尜力をしおくれた共著者でありチヌムメむトの Anju Jha ず Will Pascucci に感謝したす。 たた、私たちを助けおくれた Twitter ず Google のいく぀かのチヌムの゚ンゞニアずマネヌゞャヌ、そしお貎重なフィヌドバックを提䟛しおくれた Twitter の BigQuery ナヌザヌにも感謝したいず思いたす。

これらの問題に取り組むこずに興味がある堎合は、こちらをチェックしおください。 欠員 デヌタプラットフォヌムチヌムの䞀員です。

DWH のデヌタ品質 - デヌタ りェアハりスの䞀貫性

出所 habr.com

コメントを远加したす