SlideShare a Scribd company logo
Learn, Build, and Scale with
Elastic - Elastic Cloud で快適な
アプリ開発を実現しよう︕
鈴⽊ 章太郎
Elastic テクニカルプロダクトマーケティングマネージャー/エバンジェリスト
内閣官房 IT 総合戦略室 政府 CIO 補佐官
Elastic
Technical Product Marketing
Manager/Evangelist
内閣官房 IT 総合戦略室
政府 CIO 補佐官
元 Microsoft Technical Evangelist
Twitter : @shosuz
Shotaro Suzuki
Agenda
• Elastic 概要、Elastic Cloud デプロイ、データ投⼊⽅法
• Elastic アーキテクチャ、基本的な概念、クエリ
• .NET クライアントライブラリ等ご紹介
• React クライアントアプリを使った検索エクスペリエンス実装
Elastic 概要、Elastic Cloud デプロイ、
データ投⼊⽅法
3億5,000万ダウンロード以上、12,000以
上の企業での採⽤
40カ国以上で2,000⼈の従業員
IPO 2018, NYSE: “ESTC”
2012年設⽴
Elastic 会社概要
Distributed by design
About Elastic
世界の#1データベース検索エンジン
(DB-Engines)
なぜ Elasticsearch なのか︖
• 企業では主にリレーショナルデータベースを使⽤して
データを格納
• テーブルを簡単に結合し必要なデータベースからこのデータを取得できる
• しかし、時間の経過とともに、データベースとテーブルが肥⼤化して、数百万の
データセットを含む⼤規模なデータベースになると、操作を実⾏できなくなる
• ⼀⽅、Elasticsearch は、数百万のドキュメントを数秒で簡単に検索できる
• Elasticsearch は柔軟で強⼒、オープンでフリーな
分散型リアルタイム検索及び分析エンジン
• Elasticsearch はドキュメントベースのデータベースでデータを JSON 形式
で保存(⾮正規化)
• Elasticsearch は、アプリケーションの強⼒な検索ツールとして使⽤できる
• インデックス、ドキュメント、フィールド等を作成し、データを Elasticsearch に
プッシュで、検索の準備が整う
• Elasticsearch の2つのユニークで重要な機能
• ⽔平スケール
• ⾼可⽤性
CQRS (コマンドクエリー責任分離)との関係
•
•
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/cqrs
⽇本語のサジェスト機能を実装する際の課題と
Elasticsearch を使⽤してこれらの課題を克服する⽅法
https://www.elastic.co/jp/blog/implementing-japanese-autocomplete-suggestions-in-elasticsearch
…
⽇本語のサジェストの例
詳細な説明に⼊る前に、⽇本語のサジェスト機能の実装例を⾒
てみましょう。
主な要件
•ユーザーが検索キーワードを⼊⼒すると、関連する候補が表⽰さ
れる。例︓「⽇本」と⼊⼒すると、「⽇本」、「⽇本 地図」、「⽇本
⼈⼝」などが提案される。
•不完全な検索キーワードを⼊⼒した場合でも、関連する候補が
表⽰される。例︓「にほn」と⼊⼒すると、「⽇本」、「⽇本 地図」、
「⽇本の⼈⼝」などが提案される。
•タイプミスした場合でも、意味の通る候補が提案される。例︓「に
hん」、「にっほん」、「⽇本ん」と⼊⼒すると、「⽇本」、「⽇本 地
図」、「⽇本の⼈⼝」などが表⽰される。
•候補となる単語が、キーワードが検索された回数が多い順に⼀
覧表⽰される。
...
無料かつオープンな
アプリケーションパフォーマンス監視
https://www.elastic.co/jp/apm
https://www.elastic.co/guide/en/apm/agent/rum-js/5.x/react-integration.html
アナリストが利⽤する資産運⽤での⾼速情報検索に向け Elasticsearch を導⼊。
35種類のデータソースを Elasticsearch に集約し、圧倒的な検索パフォーマンスで業務を⽀援
https://www.elastic.co/jp/customers/smd-am
事例︓三井住友 DS アセットマネジメント株式会社
膨⼤なデータ処理とリアルタイム性を要求
される配⾞マッチング検索で Elastic を活⽤
1秒あたりのデータ投⼊件数︓ 85万から130万メッセージ
1⽇あたりのデータ投⼊量︓ 12TB
1秒あたりのドキュメントスキャン︓ 1億から40億のドキュメント数
データサイズ︓ 1PB
クラスターサイズ︓ 700台の Elasticsearch
インジェスションパイプライン︓ 100 + Data パイプラインジョブ
2018年4⽉の Qcon での Uber 様 講演より
https://www.infoq.com/presentations/uber-elasticsearch-clusters/
Elastic アーキテクチャ、基本的な概念、クエリ
3 Solutions, 1 Stack, Deploy Anywhere
Elastic スタックで実現
Kibana
Elasticsearch
Beats Logstash
Elastic エンタープライズサーチ Elastic セキュリティ
Elastic オブザーバビリティ
3つのソリューション
SaaS
(AWS/Azure/GCP)
IaaS
(クラウド & オンプレ)
Elastic Cloud
on Kubernetes
Elastic Cloud Elastic Cloud
Enterprise
豊富なデプロイ選択肢
Kubernetes
(クラウド & オンプレ)
データを収集、投⼊する
Logstash による Elasticsearch へのデータ⼀括挿⼊
保存、インデックス、分析
• 弾⼒性のある、スケールアウトを
考慮した設計
• ⾼可⽤性、マルチテナンシー
• 構造化/⾮構造化データ対応
分散型かつ
スケーラブル
開発者にとって
親しみやすい
検索と分析
• スキーマレス
• ネイティブな JSON
• クライアントライブラリ
• Apache Lucene
• リアルタイム
• 全⽂検索
• 集計
• 地理空間データ
• 多⾔語データ
可視化 → 気付き(洞察)を得る
• データ内に存在するパターン
の探索と分析: 任意のレベ
ルへのドリルダウンが可能
• Elasticsearch の強⼒
な 分析機能を活⽤
洞察の発⾒ カスタマイズと共有
• 棒グラフ、折れ線グラフ や散
布図、マップ、ヒストグラムの
作成
• ダッシュボードを共有し、
運⽤ワークフローに組み込み
• 組込み可能なアーキテク チャ:
• ダッシュボードや可視化をアプリとして作成
• セッション管理、ユーザー ロール、
セキュリティ統合
アプリ構築向け
UX プラットフォーム
幅広い展開⽅法
お客様のニーズに合わせて最適なサービスを選択する
AWS、Azure、GCP に
即座にデプロイ
単⼀のパッケージを
インストールする
SaaS オーケストレーション
Elastic Cloud Elastic Cloud
on Kubernetes
Elastic Cloud
Enterprise
インフラ上で複数の展開を⼀元管理
セルフマネージド
スタンドアロン
⾃動的にデータを分散
• インデックスをシャードと呼ばれる複数の部分に分割する機能を提供
• シャーディングが重要な理由
• コンテンツボリュームを⽔平に分割/スケーリング可能
• シャード間(場合によっては複数のノード上)で操作を分散および並列化できるためパフォーマンス/スループットが向上
• インデックスを作成するときは、必要なシャードの数を簡単に定義できる
• 各シャードは、それ⾃体が完全に機能する独⽴した「インデックス」であり、クラスター内の任意のノードでホストできる
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
標準システム構成
標準システム構成
• 上記構成は10ノード構成
• データノードとマスターノード、ML ノードが有償サブスクリプションとして計上
• コーディネーティングノード以下は有償の契約ノードに計上されない
Elastic Cloud デプロイ (Elastic & 各 Marketplace)
https://www.elastic.co/jp/
https://portal.azure.com/#create/hub
https://aws.amazon.com/marketplace/
https://console.cloud.google.com/marketplace
Elastic
Azure
AWS
GCP
EC サイトを例にした検索のエクスペリエンス
フリーワード検索
サジェスト ページング
集計
絞り込み
ハイライト
ソート
今回のデモアプリの全体像
Azure Static
Web Apps
Reactive
Search
検索専⽤ UI
Azure
Web Apps
Azure
SQL Database
Elastic Cloud
Azure サブスクリプション
Logstash
Azure
VM
(Linux)
検索・更新 UI
VSCode ※
※ 今回は⼿動。同期⽅法例︓https://www.elastic.co/jp/blog/how-to-keep-elasticsearch-synchronized-with-a-relational-database-using-logstash
APM .NET Agent
https://booksindex.azurewebsites.net/
東⽇本リージョン
マスターノード x 1
データノード x 2
ML ノード x 1
https://f79...c67.japaneast.azure.elastic-cloud.com:9243/
ASP.NET 5
Web App,
Blazor App
APM SPA Agent
https://brave-ocean-06f61b600.azurestaticapps.net/
今回ご説明する箇所
Azure Static
Web Apps
Reactive
Search
検索専⽤ UI
ASP.NET 5
Web App,
(Blazor App)
Azure
Web Apps
Azure
SQL Database
Elastic Cloud
Azure サブスクリプション
Logstash
Azure
VM
(Linux)
検索・更新 UI
※ 今回は⼿動。同期⽅法例︓https://www.elastic.co/jp/blog/how-to-keep-elasticsearch-synchronized-with-a-relational-database-using-logstash
VSCode ※
東⽇本リージョン
マスターノード x 1
データノード x 2
ML ノード x 1
https://booksindex.azurewebsites.net/
https://f79...c67.japaneast.azure.elastic-cloud.com:9243/
APM SPA Agent
APM .NET Agent
https://brave-ocean-06f61b600.azurestaticapps.net/
Elasticsearch for VSCode
https://marketplace.visualstudio.com/items?itemName=ria.elastic
http://user:pass@host:9200
https://elastic:RHGj80iJUO6CF7WBUMiwyu
1x@8009bf958b6w5923b3c56983d4048df
824.japaneast.azure.elastic-
cloud.com:9243
Elasticsearch ドキュメントの操作
•
•
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
Elasticsearch の概念
- インデックス・ドキュメント・フィールド
•
•
•
•
Elasticsearch
の概念
具体例
SQL Server, MySQL,
PostgreSQL 等
インデックス
書籍データが
格納される
場所
テーブル
ドキュメント 書籍データ レコード
フィールド
書籍タイトル、
著者、ISBN、
出版⽇、等
カラム
.NET クライアントライブラリ等ご紹介
Elasticsearch.NET & NEST
特⻑
• Open source / Apache License Version 2.0
• Elasticsearch.NET
−low level client
−依存関係フリー(組み込み等でも使える)
• NEST
−high level client
−全てのリクエスト/レスポンスオブジェクトをマッピング
−クエリ DSL サポート
Elasticsearch.Net & NEST
インストール
• NuGet パッケージマネージャーよりインストール
Install-Package Elasticsearch.Net
Install-Package NEST
NEST 特⻑
• Mapping CLR types
−https://www.elastic.co/guide/en/elasticsearch/client/net-
api/current/auto-map.html
• Fluent and Object Initializer Syntax API for query
−https://www.elastic.co/guide/en/elasticsearch/client/net-
api/current/query-dsl.html
• Fluent and Object Initializer Syntax API for
Aggregations
−https://www.elastic.co/guide/en/elasticsearch/client
/net-api/current/reference-aggregations.html
React クライアントアプリを使った
検索エクスペリエンス実装
優れた React 検索エクスペリエンスを迅速に構築する⽅法
https://www.elastic.co/jp/blog/how-to-build-great-react-search-experiences-quickly
https://github.com/elastic/search-ui
Elastic AppSearch または ElasticSite Search
特徴
•Elastic によって管理
•迅速な実装 - 数⾏のコードで完全な検索エクスペリエンス
を構築
•カスタマイズ可能 - コンポーネント、マークアップ、スタイル、
および動作を好みに合わせて調整
•スマート URL - 検索、ページング、フィルタリングなどが
URL に取り込まれ、結果を直接リンク
•ヘッドレス-アプリケーションロジックを活⽤して、独⾃の
コンポーネントまたはビューを提供
•柔軟なフロントエンド – React のみならずあらゆる
JavaScript ライブラリで使⽤可能
•柔軟なバックエンド – ElasticAppSearch のみならず
任意のバックエンドで使⽤可能
ReactiveSearch
https://opensource.appbase.io/reactivesearch/
ブートストラッププロジェクト
プロジェクトをスキャフォールディング
するために必要なステップ
● Elasticsearch クラスター作成
● データセットの取得
● データセットを Elasticsearch
にインポートする
● React プロジェクトの作成
● Reactive search インストール
● <ReactiveBase /> での
Elasticsearch への接続
<ReactiveBase
app="yelp"
url="YOUR_ELASTICSEARCH_CLUSTER_URL"
// 他のコンポーネントがこの中に配置される
<div>
Hello ReactiveSearch!
</div>
</ReactiveBase>
<DataSearch
componentId="SearchSensor"
dataField={["name", "name.search",
"name.autosuggest"]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
fieldWeights={[3, 1, 1, 2, 1, 1]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<MultiList
componentId="CategorySensor"
dataField="categories.keyword"
/>
<ReactiveList
componentId="SearchResult"
react={{
and: ['CategorySensor’,
'SearchSensor'],
}}
renderItem={res =>
<div>{res.name}</div>}
/>
import { ReactiveOpenStreetMap } from
'@appbaseio/reactivemaps';
<ReactiveOpenStreetMap
componentId="SearchResult"
react={{
and: ['CategorySensor',
'SearchSensor'],
}}
dataField="location"
/>
<link rel="stylesheet”
href="https://cdnjs.cloudflare.com/ajax/libs
/leaflet/1.3.4/leaflet.css"/>
Elasticsearch への接続
<DataSearch /> サンプルコード
検索フィールドの追加
フィールド内の重み付け
<MultiList />サンプルコード
<ReactiveList /> サンプルコード
<ReactiveMap /> サンプルコード
Add Map Styles の追加
ReactiveSearch
実装例
まとめ
まとめ
• Elasticsearch は分散ドキュメントストア
• インデックス、ドキュメント、フィールドで構成される JSON オブジェクト
• CRUD 処理と⾼速検索・集計が可能
• 可観測性、セキュリティの各ソリューションを展開可能
• 開発⽣産性を上げるツール
– VSCode for Elasticsearch
– .NET ⽤クライアントライブラリ NEST
– ReactiveSearch
• 詳細は公式のドキュメントをご参照ください
リソース
• 公式ドキュメント
– https://www.elastic.co/guide/index.html
• Elasticsearch.Net & NESTドキュメント
– https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/index.html
• Reactivesearch
– https://opensource.appbase.io/reactivesearch/
• 優れた React 検索エクスペリエンスを迅速に構築する⽅法
– https://www.elastic.co/jp/blog/how-to-build-great-react-search-experiences-
quickly
• Logstash および JDBC を使⽤して Elasticsearch とリレーショナルデータベースの
同期を維持する⽅法
– https://www.elastic.co/jp/blog/how-to-keep-elasticsearch-synchronized-with-a-
relational-database-using-logstash
アプリケーション開発 オンデマンド ウェビナー特集
https://www.microsoft.com/ja-jp/events/top/apps-innovation-webinars.aspx
• Elastic の Search API を Visual Studio
Code でコーディングする (1) - (3)
• Elastic Cloud で Azure Kubernetes
Serviecs の様々な Log/Metrics/APM を
可視化する
• ASP.NET Core 3.x Web アプリのログを
Elastic Cloud で収集・分析してみよう︕
Elastic Stack & Cloud 7.11
Technical Enablement ダイジェスト版(2/25)
https://www.meetup.com/ja-JP/Tokyo-Elastic-Fantastics/events/276099873/
Cloud Native Days 2021 (3/11-)
https://event.cloudnativedays.jp/cndo2021/talks/921
ElasticON Enterprise Search Japan (4/14)
https://www.elastic.co/elasticon/enterprise-search/japan
Thank you for your attention!
(参考)
Logstash による
Elasticsearch へのドキュメント⼀括挿⼊
Logstash による Elasticsearch へのドキュメント⼀括挿⼊
https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-2017
sqlazuredb.conf という名前で作る
Logstash インストール(macOS の場合)
// brew の更新
brew update
// Elasticsearch インストール
brew install elasticsearch
// サービスを⼀覧表⽰したり、サービス(Elastic など)起動もできる
brew services list
brew services start elasticsearch
//Elastic が正常にインストールされたら、Logstash をインストール
//このタスクを達成するために必要なのは、別の brew コマンドだけ
brew install logstash
//インストールが終わったら同じくサービス起動
brew services start logstash
Azure SQL Database ⽤設定ファイル(logstash.conf)のコード例 (1)
"jdbc:sqlserver://hostname.database.windows.net:1433;
database=AdventureWorksLT;encrypt=true; hostNameInCertificate=*.database.windows.net"
”<username>@hostname"
”<password>"
/Users/(username)/Documents/sqljdbc_8.4/jpn/mssql-jdbc-8.4.1.jre8.jar"
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
"Select * from [SalesLT].[Customer]"
sqlazuredb.conf
com.microsoft.sqlserver.jdbc.SQLServerDriver
Azure SQL Database ⽤設定ファイル(logstash.confB)のコード例 (2)
sqlazuredb.conf
filter{}
output
{
stdout{
codec=>json_lines
}
elasticsearch{
cloud_id
=>":bynGyXZ6lYXN0LmF6dXJlLmVs8w867943534egGKh6GBZXQITdk34XN0aWMtY2xvdWQuY29tOjkyN…DMkNzA==="
cloud_auth => "elastic:pHkMI91iGYZ4DG9KCVNjxn2y”
index=>"customer1"
}
}
Logstash によるデータ取得と
Kibana によるインデックスパターン作成・データの表⽰
Appendix
Elasticsearch CRUD 処理
新しいドキュメントの作成 -1
PUT booksbasic/_doc/1
{
"id": "1",
"title": ”Elastic ⼊⾨",
"date":"Oct 1, 2020",
"isbn": "ISBN123-4-56789-101-1",
"author":{
"first_name": ”Shotaro",
"last_name": ”Suzuki"
}
}
•
•
•
•
•
新しいドキュメントの作成 -2
“title”: ”Elastic ⼊⾨ - Elasticsearch/Kibana/Logstash/Beats”
“title”: ”Elastic & ASP.NET Core 3.x プログラミング”
“title”: ”Elastic による AKS Log/Metric/APM 管理”
“title”: ”Visual Studio Code による Elasticsearch プログラミング”
“title”: ”Elastic Logstash/Beats 開発と管理 徹底解説”
•
•
ドキュメントの取得 - 1
•
•
(結果)
{
"_index": "books",
"_type": "_doc",
"_id": "1",
"_version": 2,
"_seq_no": 5,
"_primary_term": 1,
"found": true,
"_source": {
"title": "Elastic 入門",
"date": "Oct 21, 2020",
"isbn": "ISBN123-4-56789-101-1",
"author": {
"first_name": ”Shotaro",
"last_name": "Suzuki"
}
}
}
GET booksbasic/_doc/1/
ドキュメントの取得 – 2 _source のみ
•
•
(結果)
{
"title": "Elastic 入門",
"date": "Oct 21, 2020",
"isbn": "ISBN123-4-56789-101-1",
"author": {
"first_name": "Shotaro",
"last_name": "Suzuki"
}
}
GET booksbasic/_doc/1/_source
ドキュメントの検索 – 1 全てのデータを検索
•
•
•
took – Elasticsearchが検索を実⾏するのにミリ秒単位の時間
timed_out –検索がタイムアウトしたかどうかを⽰します
_shards –検索されたシャードの数と、検索されたシャードの成功/失敗の数を⽰す
hits –検索結果
hits.total –検索条件に⼀致するドキュメントの総数
hits.hits –検索結果の実際の配列(デフォルトは最初の10ドキュメント)
hits.sort -結果のソートキー(スコアでソートする場合は⽋落)
POST booksbasic/_doc/_search
{
”query": {
“match_all” : {}
}
}
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
ドキュメントの検索 – 2 シャードとは
•
•
•
•
• コンテンツボリュームを⽔平に分割/スケーリングすることが可能
• シャード間(場合によっては複数のノード上)で操作を分散および並列化できるため パフォーマ
ンス/スループットが向上
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
ドキュメントの特定のデータの検索 – クエリ DSL とは︖
•
•
POST booksbasic/_doc/_search
{
"query": {
"match" : {
"title" : ”Elastic"
}
}
}
Elasticsearch データをクエリする⽅法はたくさんあります。詳細についてはこちら。
https://www.elastic.co/guide/en/elasticsearch/guide/current/_most_important_queries.html
ドキュメントの更新 - 1(データの変更)
•
POST booksbasic/_doc/1/_update
{
"doc": {
"title": "Elastic ⼊⾨ -
Elasticsearch/Kibana/Logstash/Beats"
}
}
GET booksbasic/_doc/1
{
"title": "Elastic ⼊⾨ –
Elasticsearch/Kibana/Logstash/Beats",
"date": "Oct 21, 2020",
"author": {
"first_name": "Taro",
"last_name": "Sato"
}
}
ドキュメントの削除(データの削除)
•
• DELETE booksbasic
DELETE booksbasic/_doc/3
ASP.NET Core x NEST
新しい ASP.NET Core Web アプリ作成
dotnet new mvc
Model の作成
• Elasticsearch のデータ
から JSON にシリアライズ
のため必要
• Book という名のクラスを
追加
public class Book
{
public string Title { get; set; }
public string Isbn { get; set; }
public int PageCount { get; set; }
public string ThumbnailUrl { get; set; }
public string ShortDescription { get; set; }
public string LongDescription { get; set; }
public string Status { get; set; }
public string Authors { get; set; }
public string Categories { get; set; }
}
Elasticsearch への接続を作成
• NEST ライブラリ追加
• Startup.cs のサービス構成メソッド( )内に接続を作成
dotnet add package NEST
using Elasticsearch.Net;
using Nest;
===
var pool = new SingleNodeConnectionPool
(new Uri(“http://localhost:9200”)); //ローカル実⾏の場合
var settings = new ConnectionSettings(pool)
.DefaultIndex("books");
var client = new ElasticClient(settings);
services.AddSingleton(client);
Elasticsearch への接続を作成 - Elastic Cloud ⽤
•
var pool = new SingleNodeConnectionPool
(new Uri(http://localhost:9200/));
// Elastic Cloud デプロイ時に取得した値3つ (例)
https://elastic:oRHGj80iJUO6CF7WBUMiwyu1x@8009bf95
8b6w5923b3c56983d4048df824.japaneast.azure.elastic
-cloud.com:9243
Search ⽤の HTML を作成 (index.cshtml 編集)
@model Nest.ISearchResponse<Book>
<form asp-controller="Home" asp-action="Index"
method="post">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>
@if (Model.Documents.Any())
{
<h3>検索結果</h3>
<ul>
@foreach (var book in Model.Documents)
{
<li>Title: @book.Title (ISBN:
@book.Isbn)</li>
}
</ul>
}
• @model を
[ISearchResponse]<Book>
に設定
• これは Elasticsearch 呼び出し
からの応答のタイプ
• 検索クエリをサーバーにポストバック
できる HTML フォームを追加
• Elasticsearch に渡して結果をレ
ンダリング
• ⼀致するドキュメントのタイトルと
ISBN をレンダリングする単純な
ループを追加
Elasticsearch クエリー ① MatchAll
•
•
private readonly ElasticClient _client;
public HomeController(ILogger<HomeController> logger, ElasticClient client)
{
_logger = logger;
_client = client;
}
public IActionResult Index()
{
var results = _client.Search<Book>(s => s
.Query(q => q
.MatchAll()
)
);
return View(results);
}
インデックス内の全てのドキュメントを返す
クエリ
≒ RDBMS の "SELECT *" クエリ
Elasticsearch クエリー ② Term
•
public IActionResult Index()
{
ISearchResponse<Book> results;
if (!string.IsNullOrWhiteSpace(query))
{
var results = _client.Search<Book>(s => s
.Query(q => q
.Term(t => t)
.Field(f => f.Isbn)
.Value(query)
)
)
);
}
else
{
.Query(q => q
.MatchAll()
)
);
…
⽤語クエリ
正確なクエリに⼀致するドキュメントを
⾒つける
Elasticsearch クエリー ③ Match
•
public IActionResult Index(string query)
{
ISearchResponse<Book> results;
if (!string.IsNullOrWhiteSpace(query))
{
results = _client.Search<Book>(s => s
.Query(q => q
.Match(t => t
.Field(f => f.Title)
.Query(query)
)
)
);
}
else
{
…
ユーザーにテキストを⼊⼒し、そのテキ
ストをドキュメント内のコンテンツの任意
の部分と⼀致させる
[重要な点]
• 複数のドキュメントを照合
• すべての⼀致する⽂書には、タイトル
に、当該テキストが含まれる
• ⼩⽂字で指定したのにマッチする
• この動作はカスタムアナライザーで
上書き可能
• これは別の⾼度なトピック
• Elasticsearch でサポートされる
クエリは他にも多数
• Term クエリと Match クエリは
基本的ユースケース
Elasticsearch Aggregations ー 集計
Elasticsearch Aggregations ー 範囲集計
•
…
results = _client.Search<Book>(s => s
.Query(q => q
.MatchAll()
)
.Aggregations(a => a
.Range("pageCounts", r => r
.Field(f => f.PageCount)
.Ranges(r => r.From(0),
r => r.From(200).To(400),
r => r.From(400).To(600),
r => r.From(600)
)
)
…
[重要な点]
• MatchAll クエリに加えて、集計メソ
ッドを使⽤
• "範囲" 集計を指定
• Index.cshtml も編集必要
Elasticsearch Aggregations ー 条件集計
•
…
)
.Aggregations(a => a
.Range("pageCounts", r => r
.Field(f => f.PageCount)
.Ranges(r => r.From(0),
r => r.From(200).To(400),
r => r.From(400).To(600),
r => r.From(600)
)
)
.Terms("categories", t => t
.Field("categories.keyword")
)
)
…
• タグバブルやファセットUIシステム
のユースケース
• ⽤語集計
• ≒ RDBMS の“GROUP BY”句
• ドキュメント間でさまざまな単語
(または「⽤語」)に関する統計を
取得可能
• Index.cshtml も編集必要
フィールド値が⽂字列 “categories.keyword”
に設定されているのは、⽤語の集計は負荷の⾼い
操作であり、通常は "text" フィールドでは実⾏され
ないため
Search ⽤の HTML を修正 (index.cshtml 編集)
@model Nest.ISearchResponse<Book>
<form asp-controller="Home" asp-action="Index" method="post">
<input type="text" name="query" />
<input type="submit" value="検索" />
</form>
@if (Model.Documents.Any())
{
<h3>検索結果</h3>
<ul>
@foreach (var book in Model.Documents)
{
<li>Title: @book.Title (ISBN:
@book.Isbn)</li>
}
</ul>
}
@if (Model.Aggregations != null)
{
<h3>集計</h3>
@if (Model.Aggregations.ContainsKey("pageCounts"))
{
<h4>ページ数 (範囲)</h4>
<ul>
@foreach (var bucket in
Model.Aggregations.Range("pageCounts").Buckets)
{
<li>@bucket.Key: @bucket.DocCount</li>
}
</ul>
}
@if (Model.Aggregations.ContainsKey("categories"))
{
<h4>カテゴリ (Terms)</h4>
<ul>
@foreach (var bucket in
Model.Aggregations.Terms("categories").Buckets)
{
<li>@bucket.Key: @bucket.DocCount</li>
}
</ul>
}
}
便利な機能のご紹介
- ReactiveSearch
Learn, build, and scale with elastic - realizing great programming experience with elastic cloud
ブートストラップ プロジェクト
プロジェクトをスキャフォールディングするために必要なステップ
● Elasticsearch クラスターの作成
● データセットの取得
● データセットを Elasticsearch にインポートする
● React プロジェクトの作成
● Reactive search のインストール
● <ReactiveBase /> での Elasticsearch への接続
ReactiveSearch インストール
yarn add @appbaseio/reactivesearch
https://docs.appbase.io/docs/reactivesearch/v3/overview/quickstart/
Elasticsearch への接続
<ReactiveBase
app="yelp"
url="YOUR_ELASTICSEARCH_CLUSTER_URL"
// 他のコンポーネントがこの中に配置される
<div>
Hello ReactiveSearch!
</div>
</ReactiveBase>
https://docs.appbase.io/docs/reactivesearch/v3/overview/quickstart/
Restaurant Search
<DataSearch
componentId="SearchSensor"
dataField={["name", "name.search",
"name.autosuggest"]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<DataSearch /> サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/search/datasearch/
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
検索フィールドの追加
https://docs.appbase.io/docs/reactivesearch/v3/search/datasearch/
フィールド内の重み付け
https://docs.appbase.io/docs/reactivesearch/v3/search/datasearch/
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
fieldWeights={[3, 1, 1, 2, 1, 1]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
Restaurant Category Filter
<MultiList
componentId="CategorySensor"
dataField="categories.keyword"
/>
<MultiList />サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/search/multilist/
Restaurants Search Result
<ReactiveList /> サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/search/reactivelist/
<ReactiveList
componentId="SearchResult"
react={{
and: ['CategorySensor', 'SearchSensor'],
}}
renderItem={res => <div>{res.name}</div>}
/>
Restaurant Locations
ReactiveMap インストール
yarn add @appbaseio/reactivemaps
参考︓ renderalldata
https://docs.appbase.io/docs/reactivesearch/v3/map/reactiveopenstreetmap/
<ReactiveMap /> サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/map/reactiveopenstreetmap/
import { ReactiveOpenStreetMap } from
'@appbaseio/reactivemaps';
<ReactiveOpenStreetMap
componentId="SearchResult"
react={{
and: ['CategorySensor', 'SearchSensor'],
}}
dataField="location"
/>
Add Map Styles の追加
• OpenStreetMap / GoogleMaps を使⽤するには、インデックスにスタイルを
追加
• index.html またはコードベースにインポート可能
<link rel="stylesheet”
href="https://cdnjs.cloudflare.com/ajax/libs/
leaflet/1.3.4/leaflet.css"/>
他の事例
オンライン決済サービスの監視を⽀える Elastic Stack
ECサイト向けに様々な決済⼿段を提供 / 加盟店に決済画⾯は決済APIを提供するシステム(年間取引額2兆円、2億件以上のトランザクション)
https://www.elastic.co/jp/customers/softbank-payment-service
事例︓ソフトバンク・ペイメント・サービス株式会社
オンライン決済サービスの状況をほぼリアルタイムで可視化
• ダッシュボードで、成功した決済はグリーン、失敗したものはレッド、決済手段ごと
に OK/NG の比率の推移を俯瞰。「1. グリーンが急激に少なくなったら要注意。2. レッ
ドが急激に多くなったら要注意。」
• 誰でも、いつでも、どこでも、簡単に、サービスの状況を把握
• 障害以外でも、爆売れ、不正利用といった、加盟店の変化に気がつく
• エンジニアの決済トランザクションへの関心が高まる
Machine Learning で決済トランザクションの異常を検知
• 決済トランザクションの合計の日次の増減を3周期で学習し、それが予測した範
囲から大きく外れれば、異常として検出
• 可視化だけでは埋蔵してしまう変化を ML にて新たに発見
可視化をビジネスデータにまで広げる
• 2年分の売上推移を部署別・案件別に表現。ヒートマップで営業部門や個人の目
標達成率を表現。年間の加盟店契約の獲得状況を都道府県マップに表示
• サービスサイト閲覧状況を、アクセス元の IP アドレスから企業名を推定し、契約
済み企業からのアクセス、未契約企業からのアクセスランキングを作成
• 非エンジニアでもデータ投入からダッシュボードの作成までできる
事例︓株式会社リコー
すべてのログを Elastic Stack 上に集約。35 ノードで1 ⽇2TB のログを監視
「リコーグループ全システムの IT デバイスで発⽣する1 ⽇2 テラバイトにおよぶログが、すべて Elastic Stack に送り込まれます。これを35ノード、約400テラバ
イトのクラスターで処理します。インデックス数は約10,000 でサイズは約250 テラバイト。ドキュメント数は3,450 億にも及びますが、これは昨年12 ⽉の話で、
現在はさらに増えている状況です」と話す。Elastic Stack の製品については、Elasticsearch、Logstash、Kibana、Filebeat、Packetbeat、
Winlogbeat、Monitoring、Alerting 等が使⽤されており、特に⾒える化でキーとなる Kibana については、セキュリティ統括部のオフィス室内で、⼤型
モニターに常時チャートが表⽰され、担当者がシステムの状況をリアルタイムかつ直感的に把握できるようになっている。
https://www.elastic.co/jp/customers/ricoh
事例︓ブローダービズ株式会社
機械学習を駆使して時系列の映像データを解析。⾷品製造⼯場での作業を"⾒守り"、
異常⾏動発⽣をリアルタイムに検知してトラブルを回避
https://www.elastic.co/jp/customers/broaderbiz
⾷品偽装防⽌と働き⽅改⾰
課題
•⻑時間にわたる⼯場作業を、管理者の⽬のみによって監視し
続けることは容易ではない
•担当者は、制服、帽⼦、マスクを着⽤しているため、⾒た⽬だ
けでは個⼈の特定が困難
•定量化された数値などによって状況を把握・記録することができ
ず、過去と照らし合わせることも困難
•録画されたビデオ映像は、問題が発⽣した後の証跡として利⽤
できるが、瞬時の対応には不向き
Solution
⼈⼿による作業を、AI を駆使したシステムによって“⾒守り”、担
当者の姿勢やある時間内での⾏動を、数値化された統計値と
の⽐較し、通常の⾏動を逸脱した異常事態の発⽣を瞬時に判
断することで、トラブルの拡⼤を未然に防ぐという仕組みの実現。
NEDO(国⽴研究開発法⼈新エネルギー・産業技術総合開
発機構)の共同開発⽀援事業として認められた。
事例︓⽇本経済新聞社
⽇経電⼦版の記事検索およびログ解析の両⽅を1つの仕組みで実現
利⽤範囲の広さで Elasticsearch を採⽤
Elasticsearch を選定したのは、記事検索とログの可視化の両⽅に
使える利⽤範囲の広さが最⼤の理由
15台のクラスタ構成で、1秒あたり9000リクエスト以上という⾼
い性能を発揮
記事検索とログ解析に Elasticsearch を活⽤
⽇経電⼦版の記事は、5年分で約200万件、データサイズは5GB。記事の更新は、1⽇あたり数千回、ピーク時には1分間に300件程度の記事が更
新。検索における利⽤者からのアクセスは、1秒あたり100回程度だが、1秒あたり数千回のアクセスも想定
ログ解析で Elasticsearch を利⽤した最⼤のメリットは、専⾨的な深い知識がなくてもログ解析が可能になること。Elasticsearch と Kibana を利⽤
したログ解析により、たとえば、記事検索のレスポンスにどれくらいの時間がかかっているかを容易に解析でき、アプリケーションのどこにボトルネックがあるのか、
改善するべき機能はどこなのかを迅速に把握できる
https://www.elastic.co/jp/customers/nikkei
“Elasticsearch と Kibana を活⽤することで、エンジニア秘伝の“タレ( shell 芸)”を使って可視化していたログ解析を URL や、
画像で即座に社内共有できるようになりました。これまではログ解析ができるエンジニアが2⼈しかいなかったのですが、Elasticsearch と
Kibana を利⽤することで、秘伝のタレが不要になり、ログ解析ができるエンジニアを6⼈以上に増やすことができましたようになりました。"
– 日本経済新聞社 デジタル編成局 編成部 梅崎裕利氏
事例︓スイス・ライフ
Elasticsearch が⽣み出す360°の顧客管理
Elasticsearch で1000万⼈の顧客データのインデックス作成から分析、パブリッシュまでリアルタイムに実⾏
スイス・ライフにおける課題
スイス・ライフは保険や資産管理サービスを⼿掛ける⼤⼿企業で、フランスでは個⼈向け保険商品を主⼒に⾼いシェアを持つ
スイス・ライフ・フランスの1000万⼈の顧客情報に対し、さまざまなフォーマットや、さまざまなタイプのユーザアクセスにより、データへの均質なアクセス
を維持することが難しくなり、情報が「サイロ化」していた
Elasticsearchによる解決
スムーズな運⽤と、情報への均質なアクセスを実現させるため、スイス・ライフ・フランスは Elasticsearch で顧客データのインデックスとパブリッシュを⾏った
あらゆる顧客の窓⼝となる Web サイトとモバイルアプリケーションにデータを提供するため、まず Elasticsearch ですべての顧客データを1か所に集約
顧客記録、契約データ、マーケット分類データ、年⾦と保険スコアのすべての情報を横断してリアルタイムにクエリ。
すべての顧客がポータルサイトにアクセスでき、顧客情報と契約情報をすばやく取得できる機能を提供。また、情報が更新された場合、ソースシステムで
10秒以内にインデックスを作成。
https://www.elastic.co/jp/customers/swiss-life
“スピードと信頼性は不可⽋です。Elasticsearch がデータをリアルタイムにインデックスするようになり、すべてが進
化しました。"
– クリスチャン・ファン・チョン, スイス・ライフ・フランス、チーフエンタープライズアーキテクト
事例︓PSCU(⽶国有数の信⽤組合サービス組織)
Elastic は信⽤組合に対する数百万ドル相当の不正⾏為被害を防⽌することでリスク回避を実現
Elastic 製システムをデプロイしてからわずか18か⽉間で、3,500万ドルもの不正⾏為を阻⽌
PSCU における課題
PSCUは、⽶国有数の信⽤組合サービス組織で1,500の信⽤組合にサービスを提供し、年間38億件もの取引を扱う。
会員に対して⽀払い処理、リスク管理、データ分析、オンラインバンキング、モバイルプラットフォームなどさまざまな⾦融サービスを提供
年⽉が経つにつれデータベースが巨⼤化しデータ⼊⼒が困難になり、前⽇のデータを読み込むのに丸1⽇かかる状態で適切なタイミングで不正検
知ができていなかった。
Elasticsearch による解決
会員のオンラインログイン、IP アドレス、住所、サポートセンターへの問い合わせ履歴など、数多くのデータソースを Elasticsearch に集約しログを可視化
当初は内部の不正⾏為検知が⽬的であったが問題なく稼働したため、さらに全⽶1500の信⽤組合の外部からの不正⾏為を阻⽌できるよう、幅広い⾦
融関連データソースからのログを追加
機械学習を使⽤した不正検知を導⼊し導⼊後18ヶ⽉で3,500万ドルもの不正⾏為を阻⽌
単なる不正検知にとどまらず、災害発⽣時の地域で検知された平時と異なる⾏動(⾼価な発電機、⼤量の⽸詰などを突然購⼊するなど)をブロックし
ない機能なども追加
https://www.elastic.co/jp/customers/pscu
"Elastic Stackを構築したことで、不正⾏為を従来よりもはるかに簡単に検知できるようになりました。Elasticプラットフォームに⼊⼒
するデータベースを⼤幅に増やしたことで、従来は決して気付かなかったデータの特徴をとらえられるようになりました。現在では、発⽣中
の不正⾏為を検知できるだけでなく、発⽣前にそれを検知できるようになりました。"
– ジョナソン・ロビンソン氏, PSCU、不正インテリジェンス部門マネージャー
事例︓古野電気株式会社
船舶運航の安全・安⼼・効率化を⽀えるサービスを提供
データ・分析結果を得るまでの平均時間(MTTR)の短縮率 94%
差別化されたカスタマーエクスペリエンス
古野電気は、同社の Elastic オブザーバビリティソリューショ
ンの⼀部として Kibana と Elastic Maps を採⽤したこと
で、船上でのデータ使⽤に関するデータ・分析結果をより多
く得られるようになっています。それらのデータ・分析結果は、
お客様の船舶と陸上の接続コストとパフォーマンスの改善に
役⽴ちます。
コストパフォーマンスに優れたプロアクティブなサービスを
提供
今後発⽣しそうな機器の障害、予兆を検知し、予防保守
を⾏う必要があれば、修理内容を特定し、部品を迅速に
⼿配することで費⽤を抑えながら効果的な対応をご⽀援し
ます。
安全で効率的な航⾏を実現
古野電気は、Elastic Cloud の Elasticsearch
Service を活⽤することで、ライフサイクルソリューションを効
果的に多くのお客様へ展開することができます。また、お客
様のニーズにより最適なサービスプランをパッケージ化し販売
することで、安全で効率的な航⾏へ貢献します。
https://www.elastic.co/jp/customers/furuno
Ad

Recommended

Elastic7.10 newfeaturesintroduce 1216
Elastic7.10 newfeaturesintroduce 1216
Shotaro Suzuki
 
Utilizing elasticcloudforallusecases
Utilizing elasticcloudforallusecases
Shotaro Suzuki
 
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5
Shotaro Suzuki
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Shotaro Suzuki
 
Elastic stack_&_cloud_7.11_updates-summary
Elastic stack_&_cloud_7.11_updates-summary
Shotaro Suzuki
 
ぐるなびが活用するElastic Cloud
ぐるなびが活用するElastic Cloud
Elasticsearch
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Shotaro Suzuki
 
Azure kobebase lt-20201120
Azure kobebase lt-20201120
Shotaro Suzuki
 
Logs are better with elastic apm 20210623
Logs are better with elastic apm 20210623
Shotaro Suzuki
 
Elastic Aquia Joint webinar-20211006
Elastic Aquia Joint webinar-20211006
Shotaro Suzuki
 
Elastic on-microsoft-azure-0630-webinar-no-video
Elastic on-microsoft-azure-0630-webinar-no-video
Shotaro Suzuki
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...
Shotaro Suzuki
 
Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428
Shotaro Suzuki
 
Moving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-final
Shotaro Suzuki
 
Big query and elasticsearch insight at scale
Big query and elasticsearch insight at scale
Shotaro Suzuki
 
Apm enables python app observability
Apm enables python app observability
Shotaro Suzuki
 
Realizling Dapr Observability Using Elastic Stack
Realizling Dapr Observability Using Elastic Stack
Shotaro Suzuki
 
20200324 ms open-tech-elastic
20200324 ms open-tech-elastic
Koji Kawamura
 
Evolution of Observability and APM with using Elastic and Microsoft Azure
Evolution of Observability and APM with using Elastic and Microsoft Azure
Shotaro Suzuki
 
Migrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki
 
Elastic 7.13-new-features-20210624
Elastic 7.13-new-features-20210624
Shotaro Suzuki
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
Shotaro Suzuki
 
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
Shotaro Suzuki
 
明快!Drupal と Acquia の強み
明快!Drupal と Acquia の強み
Masahiro Nishio
 
Lt tech feedsummit-0618-rev
Lt tech feedsummit-0618-rev
Shotaro Suzuki
 
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Shotaro Suzuki
 
Integrating elasticsearch with asp dot net core
Integrating elasticsearch with asp dot net core
Shotaro Suzuki
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Shotaro Suzuki
 
What's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 Release
Shotaro Suzuki
 
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
 

More Related Content

What's hot (18)

Logs are better with elastic apm 20210623
Logs are better with elastic apm 20210623
Shotaro Suzuki
 
Elastic Aquia Joint webinar-20211006
Elastic Aquia Joint webinar-20211006
Shotaro Suzuki
 
Elastic on-microsoft-azure-0630-webinar-no-video
Elastic on-microsoft-azure-0630-webinar-no-video
Shotaro Suzuki
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...
Shotaro Suzuki
 
Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428
Shotaro Suzuki
 
Moving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-final
Shotaro Suzuki
 
Big query and elasticsearch insight at scale
Big query and elasticsearch insight at scale
Shotaro Suzuki
 
Apm enables python app observability
Apm enables python app observability
Shotaro Suzuki
 
Realizling Dapr Observability Using Elastic Stack
Realizling Dapr Observability Using Elastic Stack
Shotaro Suzuki
 
20200324 ms open-tech-elastic
20200324 ms open-tech-elastic
Koji Kawamura
 
Evolution of Observability and APM with using Elastic and Microsoft Azure
Evolution of Observability and APM with using Elastic and Microsoft Azure
Shotaro Suzuki
 
Migrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki
 
Elastic 7.13-new-features-20210624
Elastic 7.13-new-features-20210624
Shotaro Suzuki
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
Shotaro Suzuki
 
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
Shotaro Suzuki
 
明快!Drupal と Acquia の強み
明快!Drupal と Acquia の強み
Masahiro Nishio
 
Lt tech feedsummit-0618-rev
Lt tech feedsummit-0618-rev
Shotaro Suzuki
 
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Shotaro Suzuki
 
Logs are better with elastic apm 20210623
Logs are better with elastic apm 20210623
Shotaro Suzuki
 
Elastic Aquia Joint webinar-20211006
Elastic Aquia Joint webinar-20211006
Shotaro Suzuki
 
Elastic on-microsoft-azure-0630-webinar-no-video
Elastic on-microsoft-azure-0630-webinar-no-video
Shotaro Suzuki
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...
Shotaro Suzuki
 
Elastic7.12 release-new-features-on-0428
Elastic7.12 release-new-features-on-0428
Shotaro Suzuki
 
Moving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-final
Shotaro Suzuki
 
Big query and elasticsearch insight at scale
Big query and elasticsearch insight at scale
Shotaro Suzuki
 
Apm enables python app observability
Apm enables python app observability
Shotaro Suzuki
 
Realizling Dapr Observability Using Elastic Stack
Realizling Dapr Observability Using Elastic Stack
Shotaro Suzuki
 
20200324 ms open-tech-elastic
20200324 ms open-tech-elastic
Koji Kawamura
 
Evolution of Observability and APM with using Elastic and Microsoft Azure
Evolution of Observability and APM with using Elastic and Microsoft Azure
Shotaro Suzuki
 
Migrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki
 
Elastic 7.13-new-features-20210624
Elastic 7.13-new-features-20210624
Shotaro Suzuki
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
Shotaro Suzuki
 
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
Shotaro Suzuki
 
明快!Drupal と Acquia の強み
明快!Drupal と Acquia の強み
Masahiro Nishio
 
Lt tech feedsummit-0618-rev
Lt tech feedsummit-0618-rev
Shotaro Suzuki
 
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Shotaro Suzuki
 

Similar to Learn, build, and scale with elastic - realizing great programming experience with elastic cloud (20)

Integrating elasticsearch with asp dot net core
Integrating elasticsearch with asp dot net core
Shotaro Suzuki
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Shotaro Suzuki
 
What's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 Release
Shotaro Suzuki
 
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
 
Building a search experience with Elastic – Introducing Elastic's latest samp...
Building a search experience with Elastic – Introducing Elastic's latest samp...
Shotaro Suzuki
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリ
YuichiArisaka
 
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
株式会社MonotaRO Tech Team
 
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Shotaro Suzuki
 
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
Recruit Technologies
 
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
Shotaro Suzuki
 
What's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 Release
Shotaro Suzuki
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
朋哉 池田
 
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
VirtualTech Japan Inc.
 
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
S. T.
 
JPN_Elastic Corporate Deck_March2016_Japan_v3
JPN_Elastic Corporate Deck_March2016_Japan_v3
Yoshio Fujimatsu
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Shotaro Suzuki
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
 
Spark in small or middle scale data processing with Elasticsearch
Spark in small or middle scale data processing with Elasticsearch
chibochibo
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
 
Integrating elasticsearch with asp dot net core
Integrating elasticsearch with asp dot net core
Shotaro Suzuki
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Shotaro Suzuki
 
What's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 Release
Shotaro Suzuki
 
Elasticsearch at CrowdWorks
Elasticsearch at CrowdWorks
佑介 九岡
 
Building a search experience with Elastic – Introducing Elastic's latest samp...
Building a search experience with Elastic – Introducing Elastic's latest samp...
Shotaro Suzuki
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリ
YuichiArisaka
 
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
Yasuhiro Murata
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
株式会社MonotaRO Tech Team
 
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Shotaro Suzuki
 
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
Recruit Technologies
 
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
Shotaro Suzuki
 
What's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 Release
Shotaro Suzuki
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
朋哉 池田
 
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
VirtualTech Japan Inc.
 
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
S. T.
 
JPN_Elastic Corporate Deck_March2016_Japan_v3
JPN_Elastic Corporate Deck_March2016_Japan_v3
Yoshio Fujimatsu
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Shotaro Suzuki
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
 
Spark in small or middle scale data processing with Elasticsearch
Spark in small or middle scale data processing with Elasticsearch
chibochibo
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
 
Ad

More from Shotaro Suzuki (20)

This is how our first offline technical event in three years was able to succ...
This is how our first offline technical event in three years was able to succ...
Shotaro Suzuki
 
Introducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdf
Shotaro Suzuki
 
NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
Shotaro Suzuki
 
Centralized Observability for the Azure Ecosystem
Centralized Observability for the Azure Ecosystem
Shotaro Suzuki
 
Power Apps x .NET ~ Transforming Business Applications with Fusion Development
Power Apps x .NET ~ Transforming Business Applications with Fusion Development
Shotaro Suzuki
 
devreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
Shotaro Suzuki
 
elastic-mabl-co-webinar-20220729
elastic-mabl-co-webinar-20220729
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
Shotaro Suzuki
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Shotaro Suzuki
 
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Shotaro Suzuki
 
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Building Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdf
Shotaro Suzuki
 
Building a Flutter Development Environment with VSCode and Useful Extensions
Building a Flutter Development Environment with VSCode and Useful Extensions
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Shotaro Suzuki
 
Firebase, Firestore Extension for Elastic App Search Integration-20220216
Firebase, Firestore Extension for Elastic App Search Integration-20220216
Shotaro Suzuki
 
This is how our first offline technical event in three years was able to succ...
This is how our first offline technical event in three years was able to succ...
Shotaro Suzuki
 
Introducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdf
Shotaro Suzuki
 
NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
Shotaro Suzuki
 
Centralized Observability for the Azure Ecosystem
Centralized Observability for the Azure Ecosystem
Shotaro Suzuki
 
Power Apps x .NET ~ Transforming Business Applications with Fusion Development
Power Apps x .NET ~ Transforming Business Applications with Fusion Development
Shotaro Suzuki
 
devreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
Shotaro Suzuki
 
elastic-mabl-co-webinar-20220729
elastic-mabl-co-webinar-20220729
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
Shotaro Suzuki
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Shotaro Suzuki
 
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Shotaro Suzuki
 
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Building Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdf
Shotaro Suzuki
 
Building a Flutter Development Environment with VSCode and Useful Extensions
Building a Flutter Development Environment with VSCode and Useful Extensions
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Shotaro Suzuki
 
Firebase, Firestore Extension for Elastic App Search Integration-20220216
Firebase, Firestore Extension for Elastic App Search Integration-20220216
Shotaro Suzuki
 
Ad

Recently uploaded (8)

Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
色について.pptx .
色について.pptx .
iPride Co., Ltd.
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP Nagoya
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP Nagoya
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 

Learn, build, and scale with elastic - realizing great programming experience with elastic cloud