SlideShare a Scribd company logo
1 of 59
Download to read offline
07th
Feb, 2014

MySQLユーザ視点での
小さく始めるElasticsearch
Kentaro Yoshida in 第3回 Elasticsearch勉強会

page 1
1. はじめに
2. 自己紹介
3. 今回のテーマ

本日の流れ

4. Yamabikoの紹介
5. 検索ことはじめ
6. Elasticsearch雑感
7. まとめ

page 2
1. はじめに

page 3
こんなお悩みを抱えていませんか?

page 4
MySQLを利用している

page 5
だけれども、

page 6
検索漏れが少ない日本語全文検索
“Kuromoji”を使いたい!
Searchモード・Extendedモードが秀逸

page 7
つまり

page 8
“Solr” or “Elasticsearch” が必要

page 9
APIをRESTfulに扱える
“Elasticsearch” がアツい

page 10
【課題】
異種RDB間のデータ同期

page 11
2. 自己紹介

page 12
自己紹介
• よしけんさん
• (株)リブセンス
• Web系インフラの

研究開発エンジニア
• Elasticsearch歴:

2013年 初夏∼
好きなプロダクト

page 13
お知らせ
3.今回のテーマ

page 16
今回のテーマ
実データを用いて手軽にElasticsearchと連携した検索を行いたい
Elasticsearchをスモールスタートで使い始めたい
既存プログラムの更新系処理に触れずに小さく始めたい
メインRDBはMySQLではあるが、検索のみElasticsearchを使う構成
Amazon RDS for MySQLにも応用できる手離れの良い構成にしたい
MySQLサーバの管理無しに冗長化構成を実現できる (Multi-AZ)

page 17
MySQLのレコードを
Elasticsearchへ同期したい

page 18
つまり
異種RDB間のデータ同期

page 19
既存製品はElasticsearch非対応
Attunity Replicate / Tungsten Replicator

page 20
そこに... Riverプラグインを発見

page 21
elasticsearch-river-jdbc
概要
ElasticsearchのRiverプラグインとして動作する
JDBCドライバを指定することで各種RDBからレコードを流し込める
SQLを一定間隔で実行し、その結果を基に取り込みを行う
実テーブルだけでなくVIEWテーブルからも取り込める

page 22
elasticsearch-river-jdbc
不都合な点
動作が安定せずElasticsearchサーバを再起動する必要がある
しばらく動いていたがいつの間にか止まっている現象
Elasticsearchサーバ側の役割が増え、単機能ではなくなる
同期する度にElasticsearch側のドキュメントが空になる挙動

page 23
MySQL BinlogAPIが役立つのでは?

page 24
試してみたものの・・・

page 25
安定稼働への道が遠く、挫折...

page 26
そこで!

page 27
欲しいものが無いので作りました

page 28
4. Yamabiko

page 29
Yamabiko

https://github.com/y-ken/yamabiko
page 30
Yamabiko
概要
MySQLからElasticsearchへデータを非同期に逐次反映
Amazon RDS・MariaDB・PerconaServer等の互換DBにも対応
Elasticsearchとは別の単体ミドルウェアとして動作
CentOS 6.x向けのRPMパッケージとして配布中
任意のSQL文の結果の差分から、insert/update/deleteイベントを検知
SELECT * FROM contents WHERE DATE_ADD(updated_at, INTERVAL 5
MINUTE) > NOW(); といったクエリで差分同期も可能
page 31
Yamabiko
ユニークな特徴:delete検知が出来る
PrimaryKeyのギャップ判定を行うことで実現
行が物理削除されてしまうケースでも追従可能
数十万行単位でも動作します
なぜ更新ログ(BinaryLog)ではなくSQLの結果を同期するのか?
JOIN無しで検索するnoSQL的概念に対応させるため
非正規化VIEWテーブルを作ることを想定
page 32
Yamabikoシステム構成例
mysql_replicator_multi を利用する場合
Yamabikoが使うメタデータを

INSERT/SELECT

格納するためのMySQLを指定
同期情報管理テーブル
全文検索

更新/削除判定用のハッシュテーブル
同期する行数がさほど無ければ
データ参照元に相乗りしても良い

page 33
5. 検索ことはじめ

page 34
データ投入
かねてから無償配布されているライブドアグルメのCSVデータを利用
MySQLをGUI管理できるMacアプリ”Sequel Pro"を用いてDBへ流し込む
Yamabikoを利用し、MySQLからデータの同期を始める
登録クエリ:SELECT * FROM restaurants WHERE closed = 0;
次のトピックは後ほど解説
mapping:緯度経度を扱えるgeo_point型を使うため
analyzer:高機能な全文検索を扱えるKuromojiを使うため

page 35
page 36
検索クエリ
curl -X POST 'http://localhost:9200/livedoor-gourmet/_search?pretty' -d '{
"query":{
"query_string":{
"query":"name:ワイン AND pref_id:13"
Luceneクエリで条件指定
}
いわゆるWHERE句
},
"sort" : [
並び替え条件を指定
{ "access_count" : "desc" },
ORDER BY access_count DESC ...
"fan_count",
"_score"
],
範囲選択 LIMIT 0, 10
"from" : 0, "size" : 10
}'
page 37
意外と簡単!

page 38
緯度経度検索
MySQLでのGeo検索はイケてないのです
SPATIALインデックスを使えるのはMyISAMだけ
最近はInnoDBでGeohashを用いればある程度のことは出来る
Geohashにも対応しているElasticsearchであれば、Z曲線のグループ毎に
facet検索できるので、地域毎に何件ヒットしたかの検索も(多分)可能
MySQL側で緯度と経度が別カラムに格納されているテーブルを
Yamabikoを使ってElasticsearchに流し込む場合には、
SELECT文に CONCAT(lat, ",", lon) AS location という列を追加し、
次ページのmapping定義をすれば緯度経度や近傍検索が出来る
page 39
緯度経度検索
# mapping定義を行った後にデータを流し込む
$ curl -XPUT "http://localhost:9200/livedoor/restaurants/_mapping" -d '
{
"restaurants" : {
"properties" : {
"location": {
"type": "geo_point",
"lat_lon": "true"
}
}
}
}'
page 40
緯度経度検索
# 検索例 渋谷近辺で店名に「ワイン」を含むお店を10件リストアップします
$ curl -XGET "http://localhost:9200/livedoor/restaurants/_search?pretty" -d '
{
"query" : {
"filtered" : {
"query":{
"query_string":{
"query":"name:ワイン"
}
},
"filter" : {
"geo_distance" : {
"distance" : "1km",
"location" : {
"lat" : 35.3924,
"lon" : 139.4157
}
}
}
}
},
"from" : 0, "size" : 10
}'

page 41
意外と簡単!

page 42
Mapping
個別指定したい場合には全てのフィールドを定義しなくとも、
個別指定したいカラムのみのmappingをPOSTすることでも動く
indexやtypeの動的生成をする場合の注意
フィールドの型を推論してくれるのは便利だが、意図せぬ挙動を
防ぐためにも、実運用時はきちんと定義しておきたい
初回に投入されたドキュメントの内容でカラムが決まるため
MySQLと違い、後でMappingの定義の変更は不可
パフォーマンス的観点からも、not_analyzedも含めて指定すると良い
デフォルトではString型の文字は全てngramで分解するため
page 43
Analyzer
Kuromojiの利用方法
環境:Elasticsearch 1.0.0 RC2 RPM
注意点
次のような手順でプラグインをインストール
indexを作る前に登録する必要がある(既にある場合は作り直し)

プラグインを入れた後はelasticsearchを再起動する
$ cd /usr/share/elasticsearch
$ sudo ./bin/plugin --install 
elasticsearch/elasticsearch-analysis-kuromoji/2.0.0.RC1
$ sudo /etc/init.d/elasticsearch restart
page 44
Analyzer
$ curl -XPUT 'http://localhost:9200/livedoor/' -d'
{
"index":{
"analysis":{
"tokenizer" : {
"kuromoji" : {
"type" : "kuromoji_tokenizer",
"mode" : "extended"
}
},
"analyzer" : {
"analyzer" : {
"type" : "custom",
"tokenizer" : "kuromoji"
}
}
}
}
}'
page 45
6. Elasticsearch雑感

page 46
MySQL脳から見たElasticsearch

page 47
Elasticsearch ステキな所
MySQL同様にRPMパッケージを利用して手軽に構築できる
Solrと異なり、完全RestAPIで操作できる
Facet検索は大変便利
配列型はタグ検索にも大変便利
Luceneクエリは学習コストが低く直感的
複数カラムに渡る検索条件を指定しても速い
MySQLと異なり1テーブル1インデックスという制約が無いため
複数のソートキーを重み付けしながら使える (boost)
緯度経度周りの検索がMySQLのそれよりも高機能である
page 48
Elasticsearch ハマり所
Query DSLは奥が深く実に複雑なため、未だに自在に操れません...
mapping定義を更新するためには、index/typeごと消す必要があること
列はinsertAPIやbulkAPIでは自動追加されないため、updateAPIを用いる
noSQL的な概念の理解
GROUP BYに相当する機能は無い
GitHubの Field Collapsing/Combining · Issue #256 の今後に期待
MySQLでは正規化さえしておけばSQL言語で自在に扱えるが、JOINが
出来ないElasticsearchでは厳しい。そのため、取り出したい形式に合
わせた非正規化データ構造を入念に準備する必要があること
page 49
Elasticsearch ハマり所
noSQL故にJOIN出来ないということは、結果として各typeに同じデータ
を複製された状態で持たせることになり、一貫性が失われるという懸念
mappingやデータ登録時の_parentや_childを使うと類似の事は可能
ただし、1:Nとしての紐付け、つまりLEFT JOIN的な事は不可能
こちらのページの「Parent & child」が分かりやすいのでオススメ
Fun with elasticsearch's children and nested documents - Space Vatican
http://www.spacevatican.org/2012/6/3/fun-with-elasticsearch-schildren-and-nested-documents/

page 50
7. まとめ

page 51
まとめ

Elasticsearchの手軽さは革命的
ElasticsearchはKibanaの為だけのプロダクトではない
Yamabikoを使えば、並行運用しつつスモールスタートが可能

page 52
お知らせ
お知らせ
Air Intern にてオフィス動画を公開中
http://airintern.com/company/detail/livesense

LIVESENSE made* にてエンジニア求人掲載中
http://made.livesense.co.jp/
Thanks!
ご清聴ありがとうございました。

page 59

More Related Content

What's hot

ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発Shinsuke Sugaya
 
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Ryoji Kurosawa
 
Elasticsearch Authプラグインでアクセスコントロール
Elasticsearch AuthプラグインでアクセスコントロールElasticsearch Authプラグインでアクセスコントロール
Elasticsearch AuthプラグインでアクセスコントロールShinsuke Sugaya
 
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話ktaro_w
 
Anemoneによるクローラー入門
Anemoneによるクローラー入門Anemoneによるクローラー入門
Anemoneによるクローラー入門Tasuku Nakano
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回Naoyuki Yamada
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Shinsuke Sugaya
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!Kouhei Sutou
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!Tetsutaro Watanabe
 
45分で理解する webクローリング入門 斉藤之雄
45分で理解する webクローリング入門 斉藤之雄45分で理解する webクローリング入門 斉藤之雄
45分で理解する webクローリング入門 斉藤之雄Yukio Saito
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜Naruhiko Ogasawara
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
elasticsearchプラグイン入門
elasticsearchプラグイン入門elasticsearchプラグイン入門
elasticsearchプラグイン入門Shinsuke Sugaya
 
Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commonschibochibo
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessShinsuke Sugaya
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQLyoku0825
 
My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話saiken3110
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 

What's hot (20)

ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
ESFluteによるElasticsearchでのO/Rマッパーを用いた開発
 
Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方Elasticsearch 変わり種プラグインの作り方
Elasticsearch 変わり種プラグインの作り方
 
Elasticsearch Authプラグインでアクセスコントロール
Elasticsearch AuthプラグインでアクセスコントロールElasticsearch Authプラグインでアクセスコントロール
Elasticsearch Authプラグインでアクセスコントロール
 
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
 
Anemoneによるクローラー入門
Anemoneによるクローラー入門Anemoneによるクローラー入門
Anemoneによるクローラー入門
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
 
45分で理解する webクローリング入門 斉藤之雄
45分で理解する webクローリング入門 斉藤之雄45分で理解する webクローリング入門 斉藤之雄
45分で理解する webクローリング入門 斉藤之雄
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
MongoDB
MongoDBMongoDB
MongoDB
 
elasticsearchプラグイン入門
elasticsearchプラグイン入門elasticsearchプラグイン入門
elasticsearchプラグイン入門
 
Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commons
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQL
 
My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話My sqlで2億件のシリアルデータと格闘した話
My sqlで2億件のシリアルデータと格闘した話
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 

Similar to MySQLユーザ視点での小さく始めるElasticsearch

Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Soudai Sone
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回都元ダイスケ Miyamoto
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたSatoshi Kubo
 
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIPJAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIPTakuro Sasaki
 
T3 pg sql_tuning_basic_20181122
T3 pg sql_tuning_basic_20181122T3 pg sql_tuning_basic_20181122
T3 pg sql_tuning_basic_20181122Haruka Takatsuka
 
Pure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjpPure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjpToshiaki Maki
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方Kosuke Tanabe
 
みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!宗 大栗
 
JPUG の中国支部長変わったってよ #mysqlbeginner
JPUG の中国支部長変わったってよ #mysqlbeginnerJPUG の中国支部長変わったってよ #mysqlbeginner
JPUG の中国支部長変わったってよ #mysqlbeginnerIkki Takahashi
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)Takahiro Iwase
 
Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門Takafumi Yoshida
 
Spring知っておきたい
Spring知っておきたいSpring知っておきたい
Spring知っておきたいYuichi Hasegawa
 
Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする
Cocoa勉強会関西 #55 MagicalRecordでCore DataをシンプルにするCocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする
Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにするasakahara
 
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki TokuharaInsight Technology, Inc.
 
raect.jsを触ったお話
raect.jsを触ったお話raect.jsを触ったお話
raect.jsを触ったお話Ryuuichi Iha
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureGoAzure
 

Similar to MySQLユーザ視点での小さく始めるElasticsearch (20)

全文検索入門
全文検索入門全文検索入門
全文検索入門
 
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
 
Glass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみたGlass fishで作ったアプリをweblogicに移植してみた
Glass fishで作ったアプリをweblogicに移植してみた
 
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIPJAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP
 
T3 pg sql_tuning_basic_20181122
T3 pg sql_tuning_basic_20181122T3 pg sql_tuning_basic_20181122
T3 pg sql_tuning_basic_20181122
 
Pure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjpPure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjp
 
図書館でのSolrの使い方
図書館でのSolrの使い方図書館でのSolrの使い方
図書館でのSolrの使い方
 
みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!
 
JPUG の中国支部長変わったってよ #mysqlbeginner
JPUG の中国支部長変わったってよ #mysqlbeginnerJPUG の中国支部長変わったってよ #mysqlbeginner
JPUG の中国支部長変わったってよ #mysqlbeginner
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 
Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門
 
Spring知っておきたい
Spring知っておきたいSpring知っておきたい
Spring知っておきたい
 
20120418 アジャイルサムライ読書会 第1回
20120418 アジャイルサムライ読書会 第1回20120418 アジャイルサムライ読書会 第1回
20120418 アジャイルサムライ読書会 第1回
 
Database smells
Database smellsDatabase smells
Database smells
 
Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする
Cocoa勉強会関西 #55 MagicalRecordでCore DataをシンプルにするCocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする
Cocoa勉強会関西 #55 MagicalRecordでCore Dataをシンプルにする
 
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara
 
raect.jsを触ったお話
raect.jsを触ったお話raect.jsを触ったお話
raect.jsを触ったお話
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
 

More from Kentaro Yoshida

Improve data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFImprove data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFKentaro Yoshida
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方Kentaro Yoshida
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Kentaro Yoshida
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編Kentaro Yoshida
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスKentaro Yoshida
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話Kentaro Yoshida
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualFluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualKentaro Yoshida
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記Kentaro Yoshida
 
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Kentaro Yoshida
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」Kentaro Yoshida
 

More from Kentaro Yoshida (11)

Improve data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFImprove data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDF
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualFluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
 
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

MySQLユーザ視点での小さく始めるElasticsearch