Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「みんなのDWH」のためのSnowflake設計

 「みんなのDWH」のためのSnowflake設計

Shuichiro MAKIGAKI

July 28, 2020
Tweet

More Decks by Shuichiro MAKIGAKI

Other Decks in Technology

Transcript

  1. アジェンダ 1. はじめに 2. ユーザー管理 3. アクセスコントロール 4. データカタログ 5.

    データ入力ガイドライン 6. 利用量制限 7. 始めてもらうために 8. まとめ 3
  2. そもそもDWHとは 9 "Data warehouse is a subject-oriented, integrated, time-variant and

    non-volatile collection of data in support of management's decision making process." W. H. Inmon, "What is a Data Warehouse?" Prism Tech Topic, Vol. 1, No. 1, 1995. https://twitter.com/inmonbill
  3. Azure Data Catalog 27 Azure Data Catalogを検証中 AWS GlueやGCPにも似たサービスはあるが、多くのデータソースに対応できたのは Azure

    SnowflakeにはODBCで接続し、TABLEやVIEWの情報を自動で抽出し、カタログアイテム化 カタログの各アイテムに「Expert」を指定することができる データカタログを検索 →「アクセス権がほしい」 →「Expertに聞こう」 カタログ上では検索可能だが、実際にアクセス可能かは別問題で、各データのExpert が判断する データのプレビュー機能で見えてはマズいデータをどうするかという問題がありましたが、 Column-level Secutiryで上手く隠せそうです。
  4. 28

  5. 29

  6. 「初回プレイ無料」実装 41 「応募された方全員にX円分のクレジットをプレゼント」として実装 1. 応募サイト作成:社内ポータル 2. ユーザー固有のWarehouseの作成 3. Resource MonitorでQuotaを設定

    なぜなら、WHにしかQuotaがかからないから RESOURCE_USAGEテーブルを作る案もあったが、リアルタイム性に欠けることと、利用と課金の相関が弱 いことから、「WHをつくってしまう」という思い切りで実装。計算資源の分離により他の人の迷惑になる心配も ない。WH作るだけならタダなので……。
  7. DWHが生み出す価値とは 44 An Inside Look at Google BigQuery (https://cloud.google.com/files/BigQueryTechnicalWP.pdf) Can

    you imagine how Google handles this kind of Big Data during daily operations? Just to give you an idea, consider the following scenarios: • What if a director suddenly asks, “Hey, can you give me yesterday’s number of impressions for AdWords display ads – but only in the Tokyo region?”. • Or, “Can you quickly draw a graph of AdWords traffic trends for this particular region and for this specific time interval in a day?” What kind of technology would you use to scan Big Data at blazing speeds so you could answer the director’s questions within a few minutes? If you worked at Google, the answer would be Dremel. Dremel is a query service that allows you to run SQL-like queries against very, very large data sets and get accurate results in mere seconds. You just need a basic knowledge of SQL to query extremely large datasets in an ad hoc manner. At Google, engineers and non-engineers alike, including analysts, tech support staff and technical account managers, use this technology many times a day.