Submit Search
Upload
ElasticSearch勉強会 第6回
•
58 likes
•
21,166 views
Naoyuki Yamada
Follow
秒間3万の広告配信ログをElasticSearchで リアルタイム集計してきた戦いの記録
Read less
Read more
Internet
Report
Share
Report
Share
1 of 24
Download now
Download to read offline
Recommended
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
NTT DATA OSS Professional Services
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
KafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
これがCassandra
これがCassandra
Takehiro Torigaki
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
Recommended
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
NTT DATA OSS Professional Services
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
KafkaとPulsar
KafkaとPulsar
Yahoo!デベロッパーネットワーク
これがCassandra
これがCassandra
Takehiro Torigaki
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
Etsuji Nakai
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
FlutterでGraphQLを扱う
FlutterでGraphQLを扱う
IgaHironobu
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
検索のダウンタイム0でバックアップからindexをリストアする方法
検索のダウンタイム0でバックアップからindexをリストアする方法
kbigwheel
elasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみた
furandon_pig
More Related Content
What's hot
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
Etsuji Nakai
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
Nozomi Kurihara
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
FlutterでGraphQLを扱う
FlutterでGraphQLを扱う
IgaHironobu
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
What's hot
(20)
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
Linux女子部 firewalld徹底入門!
Linux女子部 firewalld徹底入門!
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
FlutterでGraphQLを扱う
FlutterでGraphQLを扱う
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
Viewers also liked
検索のダウンタイム0でバックアップからindexをリストアする方法
検索のダウンタイム0でバックアップからindexをリストアする方法
kbigwheel
elasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみた
furandon_pig
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Yahoo!デベロッパーネットワーク
ElasticSearchでいろいろやってる話
ElasticSearchでいろいろやってる話
Shinya Takara
elasticsearchプラグイン入門
elasticsearchプラグイン入門
Shinsuke Sugaya
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
Shunsuke Kozawa
Elasticsearchを用いたはてなブックマークのトピック生成
Elasticsearchを用いたはてなブックマークのトピック生成
Shunsuke Kozawa
はてなブックマークに基づく関連記事レコメンドエンジンの開発
はてなブックマークに基づく関連記事レコメンドエンジンの開発
Shunsuke Kozawa
DSP基礎講座(フリークアウト 佐藤裕介氏)|マナビトオンライン
DSP基礎講座(フリークアウト 佐藤裕介氏)|マナビトオンライン
TATEITO株式会社
ネット広告のシステム関連の話
ネット広告のシステム関連の話
株式会社ジオロジック
株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発
Naoyuki Yamada
Ad tech 勉強会 20140115
Ad tech 勉強会 20140115
ajiyoshi
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
Insight Technology, Inc.
ScalaでDSP作ってみた
ScalaでDSP作ってみた
Jiro Hiraiwa
AdTech Scala Meetup 7 spray-can
AdTech Scala Meetup 7 spray-can
Shuya Tsukamoto
アドテクな話
アドテクな話
Jun Ichikawa
モバイルサイト配信と広告の課題
モバイルサイト配信と広告の課題
Yoichiro Takehora
Adtech2013 audiencemerger
Adtech2013 audiencemerger
Ryoji Yanashima
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Yasushi Hara
広告の最適化
広告の最適化
章平 福井
Viewers also liked
(20)
検索のダウンタイム0でバックアップからindexをリストアする方法
検索のダウンタイム0でバックアップからindexをリストアする方法
elasticsearchソースコードを読みはじめてみた
elasticsearchソースコードを読みはじめてみた
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
ElasticSearchでいろいろやってる話
ElasticSearchでいろいろやってる話
elasticsearchプラグイン入門
elasticsearchプラグイン入門
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
Elasticsearchを用いたはてなブックマークのトピック生成
Elasticsearchを用いたはてなブックマークのトピック生成
はてなブックマークに基づく関連記事レコメンドエンジンの開発
はてなブックマークに基づく関連記事レコメンドエンジンの開発
DSP基礎講座(フリークアウト 佐藤裕介氏)|マナビトオンライン
DSP基礎講座(フリークアウト 佐藤裕介氏)|マナビトオンライン
ネット広告のシステム関連の話
ネット広告のシステム関連の話
株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発
Ad tech 勉強会 20140115
Ad tech 勉強会 20140115
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
ScalaでDSP作ってみた
ScalaでDSP作ってみた
AdTech Scala Meetup 7 spray-can
AdTech Scala Meetup 7 spray-can
アドテクな話
アドテクな話
モバイルサイト配信と広告の課題
モバイルサイト配信と広告の課題
Adtech2013 audiencemerger
Adtech2013 audiencemerger
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
Elasticsearchと科学技術ビッグデータが切り拓く日本の知の俯瞰と発見 前半(15分): SPIAS のご紹介と主な課題
広告の最適化
広告の最適化
Similar to ElasticSearch勉強会 第6回
Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
データ分析で Excel を活用しよう
データ分析で Excel を活用しよう
Tsuyoshi Kitagawa
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
TomomitsuKusaba
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
keki3
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
Insight Technology, Inc.
BPStudy20121221
BPStudy20121221
Shinichiro Takezaki
20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
hagino 3000
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Satoshi Nagayasu
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
Shinichiro Isago
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
guest628c07
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
Tatsuro Hisamori
Big data解析ビジネス
Big data解析ビジネス
Mie Mori
Angularreflex20141210
Angularreflex20141210
Shinichiro Takezaki
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Developers Summit
Toxic comment classification
Toxic comment classification
Nasuka Sumino
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
Similar to ElasticSearch勉強会 第6回
(20)
Jubatusでマルウェア分類
Jubatusでマルウェア分類
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
データ分析で Excel を活用しよう
データ分析で Excel を活用しよう
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
[db tech showcase Tokyo 2015] E27: Neo4jグラフデータベース by クリエーションライン株式会社 李昌桓
BPStudy20121221
BPStudy20121221
20120405 setsunaセミナー
20120405 setsunaセミナー
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Cloud DatalabとBigQueryを使ったアドホックデータ解析
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
Django/Celeyを用いたデータ分析Webアプリケーションにおける非同期処理の設計と実装
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
Big data解析ビジネス
Big data解析ビジネス
Angularreflex20141210
Angularreflex20141210
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Toxic comment classification
Toxic comment classification
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
More from Naoyuki Yamada
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
いわき情報技術研究会20170513
いわき情報技術研究会20170513
Naoyuki Yamada
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
Naoyuki Yamada
東北Tech道場郡山20151031
東北Tech道場郡山20151031
Naoyuki Yamada
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
Naoyuki Yamada
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
Naoyuki Yamada
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
Naoyuki Yamada
Adtech College#7 GitHubを中心とした開発フロー
Adtech College#7 GitHubを中心とした開発フロー
Naoyuki Yamada
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
Naoyuki Yamada
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
Naoyuki Yamada
Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2
Naoyuki Yamada
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Naoyuki Yamada
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
Naoyuki Yamada
社内勉強会:ソーシャルゲームのデータベース設計入門
社内勉強会:ソーシャルゲームのデータベース設計入門
Naoyuki Yamada
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
Social Web Japan Vol.3 "Social Application and their support services"
Social Web Japan Vol.3 "Social Application and their support services"
Naoyuki Yamada
ソーシャルアプリ業界を構成する中間サービスたち
ソーシャルアプリ業界を構成する中間サービスたち
Naoyuki Yamada
More from Naoyuki Yamada
(17)
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
いわき情報技術研究会20170513
いわき情報技術研究会20170513
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
東北Tech道場郡山20151031
東北Tech道場郡山20151031
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
Adtech College#7 GitHubを中心とした開発フロー
Adtech College#7 GitHubを中心とした開発フロー
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
Functional Programming in Scala Reading #2
Functional Programming in Scala Reading #2
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
社内勉強会:ソーシャルゲームのデータベース設計入門
社内勉強会:ソーシャルゲームのデータベース設計入門
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Social Web Japan Vol.3 "Social Application and their support services"
Social Web Japan Vol.3 "Social Application and their support services"
ソーシャルアプリ業界を構成する中間サービスたち
ソーシャルアプリ業界を構成する中間サービスたち
ElasticSearch勉強会 第6回
1.
秒間3万の広告配信ログをElasticSearchで リアルタイム集計してきた戦いの記録 2014年9月16日
第6回ElasticSearch勉強会 山田 直行
2.
目次 • 自己紹介
• ディスプレイ広告配信DSP「Smalgo」について • インフラ選定と設計 • データ構造とリアルタイム集計 • 運用開始して分かったこと • トラブルとその対応
3.
自己紹介 • 山田
直行(やまだ なおゆき) Twitter @satully blog.kirishikistudios.com • 株式会社サイバーエージェント アドテクスタジオ エンジニア 2011年入社。前職はソーシャルゲームのエンジニア • 担当分野:DevOps インフラ設計/運用・データ集計/分析・CIなど • AWS認定ソリューションアーキテクト アソシエイト • データの活用について、インフラ構築から分析、実サービスへの適用までを通して できるエンジニアを目指しています
4.
ディスプレイ広告配信DSP「Smalgo」について プロダクト概要 •
ディスプレイ広告(≒バナー広告)の配信プラットフォーム • 2014年5月から提供(前身となるプロダクトを含めると2014年2月から) • スマートフォン向けがメインだが、PC向け配信も行っている • RTBがメインだが、第三者配信など他の配信方法にも対応 • 成果報酬型課金が特徴
5.
ディスプレイ広告配信DSP「Smalgo」について DSPの位置づけ 引用元:日本一やさしいアドテク教室
https://www.cyberagent.co.jp/ir/personal/adtech/adtech_05/
6.
インフラ選定と設計 DSPの配信~集計の全体像 様々なログを集計し、そのデータを使って配信、の繰り返し
メメデディィアアメメデディィアアメディア Bid/Ad サーバー Impression サーバー Click サーバー アドネットワーク またはSSP Conversion サーバー Mark サーバー Fluentd ElasticSearch クラスタ MySQL Redis S3
7.
インフラ選定と設計 データインフラとして何を使うか? 機能要件 •
柔軟なスキーマ ログのデータ構造は機能追加に伴って変化していく。キャンペーンやクリエイティブの情報の他、広 告枠の情報やレスポンスタイムなどをまず含め、それ以降のデータ拡張にも対応したい ネストしたデータ形式を扱えるようなドキュメントDBを検討した • 小さく始められ、かつスケールアウトが容易であること 当初は10億req/monthからスタート。そこから2000億req/monthまでスケールアウトできること がいったんの目標。できればスケールアウトを無停止で行いたい • リアルタイムとバッチでの両方の分析ができること リアルタイムにデータを集計できると、クリックやコンバージョンのテスト、レスポンスタイムのモ ニタリング、リアルタイムのターゲティングが可能になる。ログが吐かれて数秒以内にはデータを利 用可能にしたい。それと同時に、任意のデータ列を軸にした集計処理にも活用したい
8.
インフラ選定と設計 ElasticSearchを採用 •
前ページの要件を全て満たしていた • Kibanaの存在が採用を後押しした。データの分析・可視化ツールを独自に開発する よりも、良い選択肢だと考えた • 当初は、全件データサービスとしての利用を主目的として考えていた。これまでは広 告運用者は「集計されたデータ」を扱うことは多くても、「生の配信データ」にアク セスするには一手間かかっており、これを直接検索できるようにして分析や調査に利 用できるようにしたいという狙いがあった • ただし、ElasticSearchの”何でもできる感”と、急激なプロダクトの拡大と機能追加 により、ElasticSearchを広告配信のためのバッチ集計にも利用していくことになる • 多くの要件を一度に満たせる夢のデータベースなんてあるの? →運用には苦労することに
9.
インフラ選定と設計 ElasticSearchクラスタの2014年7月ごろの構成 Fluentd
ElasticSearch Search Nodes ElasticSearch Coordinate Nodes ElasticSearch Search Nodes ElasticSearch Coordinate Nodes master: false data: false 2ノード r3.large ElasticSearch Data Nodes ElasticSearch Data Nodes ElasticSearch Data Nodes master: true data: false 2ノード r3.large ElasticSearch Data Nodes ElasticSearch Data Nodes バッチ サーバー Kibana REST Client ELB ELB master: false data: true 28ノード 12シャード & 1レプリカ r3.xlarge/1GB SSD バッチは1時間に1回 その中で数回のaggregationクエリ KibanaやRESTクライアントは 任意のタイミングで使われる fluentd(td-agent)は10ノード 5ノードがBidログ用 3ノードがそれ以外のログ用 2ノードがアクティブスタンバイ ! 月間ログ数400億行 ピーク時秒間30000writes
10.
データ構造とリアルタイム集計 Bid RequestからConversionまでをデータ格納時にひもづける
• DSPのログは、Bid Request - Bid Response- WinNotice - Impression - Click - Conversionといった種類があり、これらのどの ログとどのログが対応しているかをひもづけていく必要がある Bid Request/Response (bidした) (bidしなかった) Impression Win Notice Click Conversion • Bid Requestログは最も多量であり、 そこからBidしたものの中からオーク ションに勝利したものがインプレッショ ンとなり、そこからクリックされたも の、コンバージョンしたもの、という 具合で減少していく
11.
データ構造とリアルタイム集計 インデックスとデータスキーマ {
"_index": "deliver-2014.09.15", "_type": "unite", "_id": "T4xi1p67y6l6gk2bnsf0oib5g6", "_score": 1, "_source": { "bid": { "time": "2014/09/15 20:41:40", "host": "bid16", ... }, "wn": { ... }, "imp": { ... }, "click": { ... }, "cv": { ... } } } • インデックスは1日ごとに1個切る。 ただしbidしたものとbidしていないも のを別インデックスとした(集計時に どちらかしか見ないことが多いため) つまり1日あたり2つのインデックス が作られる • データは右図のように、ひもづいたロ グを1つのドキュメントに格納するデー タ形式を取る。そのためにデータ更新 時に1回search queryを投げ、ひもづ くドキュメントにappendする処理に した(fluentdのpluginを書いてその中 で処理)
12.
運用開始して分かったこと クラスタデータベース +
リアルタイム集計ならではの問題 • 新しい配信の機能をElasticSearchを使って実現することで、リリースをどんどん していくことができた • Kibanaが活用され、多くのダッシュボードが作られた。それらはリアルタイムのモ ニタリングや配信ログの調査に効果を発揮した • ただし、Kibanaの利用のされ方が読めず、重いクエリが流れてKibanaがクラスタ に負荷をかけることが頻繁にあった • ピーク時に書き込みが間に合わず、データ格納が遅延することが多くあった • 別データベースでバッチ処理でやっている集計との間で集計結果に微妙なズレが生 じて、一致させることが困難だった • シャードの再配置中には負荷が高まり、それを静めるのに苦労した
13.
運用開始して分かったこと どういう設定が最適か、を事前に見極めるのが難しい •
インデックスとドキュメントの設計は非常に大切 当初はbidしたログとbidしていないログが1つのインデックス内にあり、負荷が非常に高 かったが、分割したことでかなり負荷が下がった ドキュメントの設計は最適だったのかどうかは今でも悩むところ • シャード数をいくつにするか 4 -> 8 -> 12と増やしてきた 増やしすぎることで運用が難しくなるのではないかという懸念があって増やすのに慎重だっ たが、もっと多くても良いかもしれない。1ノードあたりに同一インデックスは1シャード までという構成をとったが、そうする必然性はない • production環境でないと分からないことが多い development環境、staging環境はあったが、構成の確認はできても負荷チューニングは できず。本番で実際適用してみて分かることが多かった。負荷試験の環境をもっとうまく 作れたらよかった
14.
トラブルとその対応 バージョンアップ &
SSDへの変更が大きかった • バージョンアップでかなり安定した 当初はver1.0.2でサービスイン。Out of memoryでノードが反応しなくなる問題に悩まされた。 ver1.2.3にしてからかなり安定。 • データドライブのEBSをSSDに変更して高速化 Amazon Web Services ブログ: 【AWS発表】新しいSSDベースのElastic Block Storage http://aws.typepad.com/aws_japan/2014/06/new-ssd-backed-elastic-block-storage.html このリリースで、EBSを全てSSDに入れ替えたところ、書き込みのスループットが改善 • 検索処理のキャッシュ化 当初はデータノードにc3.2xlarge(8CPU 16GB)を利用していた。データ格納時の事前検索で多量の CPUを使っていたためだが、ElastiCacheを使ってひもづくデータのキーをキャッシュすることに よりCPU使用率を大幅に下げて、メモリ重視のインスタンス(r3.xlarge(4CPU, 30GB))にすること により検索が高速化し、パフォーマンスが安定した
15.
トラブルとその対応 運用ツール •
ElasticSearch Head http://mobz.github.io/elasticsearch-head/ シャードの状況把握にはこれ • bigdesk for elasticsearch http://bigdesk.org/ 細かな負荷監視に利用 • ElasticHQ - ElasticSearch monitoring and management application. http://www.elastichq.org/ 全体の俯瞰とチューニング箇所の特定に利用 • Homepage of Zabbix :: An Enterprise-Class Open Source Distributed Monitoring Solution http://www.zabbix.com/ 全般的な死活監視と、Fluendからの書き込みの監視
16.
トラブルとその対応 Fluentdのチューニング •
FluentdでElasticSearchに書き込むのと同じデータをS3にも 保存しておき、S3のデータから復旧するスクリプトを用意 • ElasticSearch自体が持つバックアップ機能は非使用 • Fluentd(td-agent)のパラメータをチューニングして最適値を 探した <match es.app.bid> flush_interval 1s buffer_type file buffer_chunk_limit 8m buffer_queue_limit 10000 retry_limit 5 </match>
17.
トラブルとその対応 elasticsearch.ymlの設定値 •
正直なところ、最適な値がいくつかは今でもわかっていない。 その都度試行錯誤している • オンラインで変更可能なものと、再起動が必要なものがある • いろいろなウェブサイトを参考に設定値を変えて試してみたが、 大きなパフォーマンスアップは見られず、デフォルトに近いパ ラメータで運用している index.number_of_shards: 12 index.number_of_replicas: 1 indices.fielddata.cache.size: 50% script.disable_dynamic: false bootstrap.mlockall: true
18.
トラブルとその対応 基本の確認コマンド •
クラスタの設定を確認 curl -XGET localhost:9200/_cluster/settings?pretty • クラスタの設定を確認 curl -XGET localhost:9200/_cluster/health?pretty • シャードの配置状況を確認 curl -XGET localhost:9200/_cat/shards 2>/dev/null
19.
トラブルとその対応 ノードの入れ替え •
ノードをグレードアップするときには、新しいインスタンスを 同数用意して、全部入れ替える手法を取った バージョンアップ時やインスタンスタイプを変えたときなど。例えば16台のデー タノード運用していたときは、同数の16の新しいデータノードを用意し、合わ せて32台にして、そこからcluster.routing.allocation.exclude._nameを使って 古いノードから新しいノードにシャードを移動させ、全部移動し終わったら古 いノードを全て止めて削除する、というようにした。新しい構成で何か問題が 発生した際に、戻すということを可能にするため。 curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.exclude._name" : “logananlytics-data10,loganalytics-data11“ } }'
20.
トラブルとその対応 特定のノードにシャードが固まっているときに移動をさせる •
あるノードが落ちたときなど、特定のノードにシャードが固 まっていて負荷になっていたときは、手動で再配置をかけて対 応したことも curl -XPOST 'localhost:9200/_cluster/reroute' -d '{ "commands" : [ { "move" : { "index" : "deliver-nobid-2014.06.23", "shard" : 1, "from_node" : "loganalytics-data38", "to_node" : "loganalytics-data37" } } ] }'
21.
トラブルとその対応 unassignedのシャードをノードに割り振る •
たまにunassignedになったままのシャードがあるので、自動 での割り当てを待たずにRESTで割り当てノードを指定 curl -XPOST 'localhost:9200/_cluster/reroute' -d '{ "commands" : [ { "allocate" : { "index" : "deliver-2014.06.29", "shard" : 4, "node": "loganalytics-data25", "allow_primary": true } } ] }'
22.
トラブルとその対応 initializingのままのシャードをキャンセル •
原因不明だが、initializingのままずっとスタックしている シャードがあった。そのときはシャードをキャンセル curl -XPOST 'localhost:9200/_cluster/reroute' -d '{ "commands" : [ { "cancel" : { "index" : "deliver-2014.07.03", "shard" : 2, "node" : "loganalytics-data24" } } ] }'
23.
トラブルとその対応 同時に再配置を行う数をコントロール •
時間帯をみて、再配置を行う数を変更して負荷を調整 Excludeしたノードから一気に引っ越しさせるときもこれ curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.cluster_concurrent_rebalance" : 8 } }'
24.
まとめ • データインフラにElasticSearchを採用した経緯とメリット・
デメリットについて話しました • システム全体の中で、どういう位置づけで、どういうSLAで運 用していくかを明確にしておくことが大事だと感じました • 構成や設定については日々悩みながら運用していて、最適値に ついても試行錯誤中です • ある程度の規模で構築・運用した事例として、参考になれば幸 いです
Download now