tsalakh ain sus noam Huyah ol guf

勉強会のメモ。その他備忘録。参考にさせて頂いたサイトや資料はリンクさせて頂いていますが不都合があればご連絡ください。

【勉強会】dbtech_showcase2016day3

2016-07-15 dbtech_showcase2016day3

これに行ってきた。

www.db-tech-showcase.com


EXADATAからPureStorageへの移行

  • ピュアストレージジャパン 岩本知博さん
  • NTTぷらら 長谷部勇さん

www.slideshare.net

旧基盤

  • NetAppとSPARCでDataGuard構成
  • SharedNothing型にしたかった

良かった点

  • NetAppは瞬時バックアップ、瞬時クローンが簡単
  • 待機系のクローンをとって検証環境として使う

課題

  • DataGuardはF/O時にクライアント接続が追従できない
  • I/OボトルネックNFSの限界)でCPU過負荷、バッチが終わらない
  • システム更改にコスト削減が課題になった
  • DataGuard→RAC
  • NASStrage(NAS)→SANStrage(FC)

PureStorage

  • IOPSだけじゃない、スループットもいい
  • 固定長ブロックじゃない、512byteから32Kで可変
    • ディスク効率がいい
  • あえてAct-Actでは使わせない、シンプル構成

新基盤

  • ExadataX2(quarter rack)
    • SPARC Tと比較してライセンス費4倍
    • サービスの変化でExaのチューニングが必要
    • スキトラが難しい
    • 故障率高い、5年で13/36故障
    • バックアップは日次RMAN、NFS経由でIAサーバHDDへ
    • ASM3重化なのでディスクの実利用は1/3

demo

  • Swingbench

BigData基盤のカテゴリ分類

www.slideshare.net

  • いっぱいあるけど、こう分類できるよ
  • 代表的なプロダクト、こんなのあるよ
  • リクルートではこう使い分けしてるよ

という話。

分類は2軸4象限に分類できる

  1. 重視する性能
    • レスポンス重視(主にオンライン)
    • スループット重視(主に分析やバッチ)
    • ここをわけて考えないと話が通らない
  2. 性能拡張方式
    • スケールアップして集約するのか
    • スケールアウトして分散するのか

ざっくりこう。

オンライン 分析
集約 KVS/DocumentDB Hadoop
分散 RDB(OLTP) RDB(DWH)

集約・分析型=RDB(DWH)

プロダクト

  • オンプレ:EXADATA
  • サービス:Redshift

特徴

  • データをパーティショニング、複数ディスクから同時に読む
  • DBnodeとStragenodeが4GBbpsSAN
  • SSDでキャッシュしてDiskIO削減
  • 列指向で圧縮してデータ格納
  • 行指向はランダムアクセスは早いけど集計はディスクIO多くて遅い
  • 列指向はランダムは遅いけど集計が早い
  • 数秒から数分レスポンス、直近13カ月データ、SQLベース
  • 自由検索、レポート、BI
  • 更新(Insert/Update/Delete)が遅い、できるけど

  • オンプレ:Hive
  • サービス:TresureData
  • クラウド:BigQuery
  • SELECTしか提供しないRDB
  • SQLライクなクエリ
  • 単発更新なし、トランザクションなし、大量インサートのみ

Hadoop

  • 分散したファイルに、さまざまな分散処理をできるソフトウェア群
  • 分散処理エンジンと、分散ファイルシステム
  • オンプレ:hadoop、cloudera、Hortonworks HDFSベース
  • オンプレ:MapR MapR-FSベース
  • サービス:EMR+S3、CloudDataproc+GCS、TreasureData+???
  • レスポンスは数時間、ペタバイトクラス、SQLに限らずプログラムレベル・機械学習
  • HDFSは基本ローカルのデータに対して処理、ノード増やすとデータコピーが必要
  • クラウドなら、EMRならデータはS3なので、ノード増やせばすぐ使える

KVS

  • 分散してシンプルなオペレーションができる
  • オンプレ:redis、riak KeyValue ワイドカラム
  • クラウド:ElastiCache KeyValue
  • 整合性を緩めることでスケールアウト可能にする
  • データ間の参照関係を定義させないことで分散しやすいデータモデル
  • 一つのデータでクエリが完結する
  • 大規模Webのバックエンド、セッション格納、事前計算データのキャッシュ
  • メッセージングシステム
  • トランザクションや集計はできない

ドキュメントDB

  • オンプレ:mongoDB、couchbase
  • KVSよりクエリが豊富
  • データモデルにJSONを使う
  • 集計“も”できる、本職ではない
  • 分散処理を活かしたユースケース
    • 大規模Webのバックエンド
    • オンラインゲーム
  • JSON使いたいだけのユースケース
    • プロトタイプ開発(JSONベース開発でORマッパー使いたくない)
    • データハブ
    • JSONログ保管
  • ドキュメントDBの集計機能はおまけ、本気で分析するなら向かない
  • ACIDトランザクションを提供する、といったら分散処理を犠牲にしている可能性がある
  • 非構造向きではない、半構造向き

その他

  • NoSQLとスキーマレスはイコールじゃない
  • NoSQLだからSQL使えないのではない
  • NoSQLだから分散処理ではない

Spark

  • データベースではない
  • データサイエンティストのためのライブラリ群
  • Hadoopがなくても動く(HDFSを使うことはよくある)

マイクロバッチ

  • ストリームデータに対して、短い時間で集計をする
  • kafka+Spark、KinesisStream+KinesisAnalytics
  • PUB(出版)、分散キュー、SUB(購読)
  • データを永続化しないからデータベースではない
  • 初回訪問ユーザの属性

インメモリデータグリッド

  • GemFire、ApacheGEODE
  • アプリのローカルに置かれるキャッシュ
  • KVSライク
  • メモリ上処理が前提
  • ミリ秒単位の応答

Elasticsearch

グラフDB

  • Neo4j
  • グラフ演算に特化したDB
  • JOINの入れ子のような処理が超早い

ブロックチェーン

  • 分散KVSの応用

分散OLTP

  • 10万TPS
  • HWをいっぱい乗せる

  • IoTのデータ収集はKVSが最適ではない
  • マイクロバッチ+Hadoop or RDB(DWH)がいいと思う

OLAP options on Hadoop

  • HDFS+YARNが狭義のHadoop
  • ApacheKylin、ApacheDruid
  • Hive0.x(MapReduce
  • Hive1.2(Tez、Vectorize、ORC、CBO
  • Hive2.0(LLAP)
  • MPP(Impara、Drill、SparkSQL、HAWQ、RedShift)
  • ACID/MERGE、Hive(WIP)
  • OLAP/Cube、Kylin、Druid

Apache Kylin

  • eBay上海で開発されたOLAPエンジン
  • HiveでのOLAPの速度に満足できなかった
  • 数秒でのレスポンスが欲しかった
  • Architecture
  • RESTAPI/QueryEngine/Router/Hive or HBase
  • Hiveの結果はCubeBuilder通してCubeがHBaseに入る
  • Cube:集計をあらかじめ定義してマテリアライズしたもの
  • KylinのIF
  • ANSI SQL準拠、HBase直アクセス禁止、MDXは未対応

Apache Druid

  • MetaMarketで開発されたOLAPエンジン
  • 列指向分散データストア
  • sub−secondでのクエリレスポンス
  • 自在なスライシング、ダイシング
  • ペタバイトデータ
  • 広告配信サービスのリアルタイムダッシュボード
  • Architecture
    • BatchData→Ingest→HistricalNode←BrokerNode
    • StreamData→Kafka→RealtimeNode←BrokerNode
    • BrokerNodeがどちらからもデータ取れる
  • DruidのIF
  • ThetaSkethes KMV:Open source by Yahoo!
    • UUをリアルタイムに計算するライブラリ
  • Yahoo
    • EventData→HourETL/DailyRollup/Aggregate→HDFS→Druid→UI
  • Solution Architecture for SQL analysis
  • DataSource→Kafka→HDFS→Hive→OLAP(Kylin/Druid)

http://www.slideshare.net/uprush/hivesubsecondsqlonhadooppublic


ビッグデータ関連OSS動向調査とニーズ分析

  • OSS推進フォーラム副理事長 吉田行男
  • コミッタ数:Spark、Mesos、Drill
  • コミット数:Elasticsearch、Spark、Ceph、Cephは分散ストレージ技術
  • ML流量:Hive、Storm、Kafka、ストリーミング系
  • 脆弱性:JasperReportsは11年で10件
  • BigDataはまだまだ普及していない
  • 目的がはっきりしないから投資されない
  • とりあえず溜めておこう(=DataLake)は現実的に波及していない
  • IoT、AIにおける利用ケースが具体的になったり、キラーアプリが必要

RDB比較

http://www.slideshare.net/ryotawatabe/2016715-jpoug-rdbms-backup-architecture


Delphix

  • Delphix 三村泰弘さん・槌屋砂幾さん

背景

  • Agile/DevOpsの流れにデータマネジメントは追いついていない
  • 課題
  • データコピーに時間がかかる
    • 数TBのデータを数分で、任意の時間で、DBAなしで
  • データの保管場所
    • データの重複排除、スナップショット技術により、1複製が1/10
  • セキュリティの問題
  • 個別のマスクツールは不要
  • Delphixエンジン
    • 本番環境から非本番環境へデータコピー
  • データのバージョン管理ができる
    • ブランチング
    • 任意の時刻にプロビジョニング
  • データが汚れたら一回消して再取り込みも瞬時に可能

demo

  • 1:nでのコピーが可能

初回フルバックアップ、同期

  • 初回は単純ダンプ
  • OracleならRMANだったり、製品に合わせた技術
  • dSourceはタイムスタンプでログ管理

プロビジョン

  • dSource内はデータをブロック管理
  • VDB(VirtualDB)を作成、ブロックをマッピング(実コピーはしない)
  • VDBを開発環境ホストにNFSマウント
  • VDBが独自に更新したものは、VDB内でブロック管理
  • VDB内でもタイムスタンプでリビジョン管理可能
  • VDB作成時にフックも書ける
  • VDBからブランチ作成可能
  • VDBの管理は個別に可能、DBA不要で開発者が操作できる

マスキング

  • VDBの定義時にルールを指定する
  • 初回作成時、リフレッシュ時に適用される
  • Rulesetでテーブルとカラムを指定してマスクを指定できる
  • アルゴリズムは事前に定義
  • Lookup:指定のカラムとダミーデータのリストをランダムに置換

www.slideshare.net