Elasticsearchを利用した検索と視覚化をSQLデータに追加します
新しいNoSQLデータストアに焦点を当てた話題にもかかわらず、リレーショナルデータベースとSQLベースのデータベースはまだ健在です。実際、私たちが協力しているほとんどすべての顧客は、MongoDB、Redis、またはElasticsearchと並んで、環境内にMySQL、PostgreSQL、またはMSSQLServerを持っています。移行として、または単に全文検索や視覚化などの機能をリレーショナルデータに追加するために、リレーショナルデータベースから別のデータストアにデータを複製する最も簡単な方法に関するリクエストを受け取ることは珍しくありません。幸い、Elasticsearchを使用するとこれが非常に簡単になります。
最近、リレーショナルデータベースのElasticsearchへの接続に関する詳細なホワイトペーパーを作成しました。このホワイトペーパーでは、プロセスと必要な決定について説明していますが、簡単な紹介と概要が必要な場合は、以下をお読みください。
適切なツールセットの選択
Webには多くの移行/レプリケーションツールがあり、このシナリオで独自のコードを作成することもそれほど手間はかかりませんが、Logstashとjdbc入力プラグインが最適なソリューションであることがわかりました。
Logstashは、スイスアーミーナイフスタイルのデータのインジェスター、トランスフォーマー、および配送業者です。また、Elastic Stackの一部であることを考えると、Elasticsearchにデータを簡単に送信する機能は他に類を見ません。これでElasticsearchパーツへの転送は処理されますが、リレーショナルデータベースからデータを取得するのはどうでしょうか?
Logstashが提供する多くの入力の1つは、JDBC入力です。 JDBCは、Javaアプリケーションがデータベースにアクセスする方法を定義する標準です。データベースでjdbc準拠のドライバーが使用可能である限り、JDBC Logstash入力はそれを使用して、標準のSQLクエリを使用してデータを抽出できます。リレーショナルデータベース間で無料のJDBCドライバーが幅広くサポートされており、一部の非リレーショナルデータベースもサポートされているため、他のデータベースをElasticsearchに接続するための簡単な方法です。
接続を確立する
jdbc準拠のデータベースと互換性のあるドライバーがあれば、いくつかの情報を使用してLogstashを構成するのと同じくらい簡単に構成できます。
- JDBC構成情報
- リレーショナルデータベースのクレデンシャルと接続情報
- Elasticsearchデータベースのクレデンシャルと接続情報
その情報があれば、Elasticsearchにデータをシャッフルするだけで非常に簡単です。
重要な質問をする
リレーショナルデータをElasticsearchに複製または移行する場合、ポイントAからポイントBにデータを取得することは、戦いの半分にすぎません。より大きく、より示唆に富む質問は、Elasticsearchでそのデータを一度モデル化する方法です。 Elasticsearchのリレーショナルデータの問題は、率直に言ってリレーションです。
Elasticsearchは何よりもまず検索エンジンですが、データモデルは基本的にドキュメントストアであり、ドキュメント間の関係は最小限しかサポートされていません。そのため、Elasticsearchでデータをモデル化する方法についていくつかの決定を行う必要があります。
一般的に提示される3つの標準オプションは次のとおりです。
- データを非正規化する: 基本的にすべての関係を削除し、テーブル内のデータのすべての組み合わせに対して一意のドキュメントを作成します
- ドキュメント内の配列: Elasticsearchは、各ドキュメント内にオブジェクトの配列を作成する機能をサポートし、一部のクエリがその配列の各メンバーを個別のドキュメントとして評価できるようにする特別な「ネストされた」データ型も提供します。
- 親子関係: 最後のオプションであり、真のリレーショナルデータベースに最も近いのは、Elasticsearchの親子関係です。これにより、特定のドキュメントが他のドキュメントの子であることを指定できます。
Elasticsearchにはデータを処理するためのいくつかのオプションがありますが、どの方法が最適でニーズを満たすかは実際にはあなた次第です。
もう1つの重要な決定は、Elasticsearchに複製するデータの量と頻度です。移行する場合、それはすべての1回限りのダンプであるため、答えは簡単です。ただし、Elasticsearchをセカンダリレポートデータストアとして使用する場合は、コピーするデータの量とケイデンスに関する追加のオプションがあります。定期的に完全なスナップショットをコピーするか、Logstash JDBC入力フィルターの一部の機能を使用して特定の列をフィルター処理し、新しいデータが使用可能になったときにのみ送信することができます。繰り返しになりますが、これはすべてデータとその使用目的によって異なります。
決定と詳細
肝心なのは、データストアを接続するためのツールとプロセスが今すぐ利用可能であり、実際にはデータを使って非常に簡単に実践できるということです。 Elasticsearchでデータをモデル化する方法、データをクエリする方法、およびデータを視覚化する方法に関して、いくつかのトレードオフがあります。たとえば、リレーショナルデータの非正規化を選択すると、結果のデータセットのサイズ、特定の集計の実行方法、使用可能な視覚化に影響があります。
プロセスとそれらの決定を行う方法を説明するために、ホワイトペーパー「リレーショナルデータベースをElasticsearchに接続する」を作成しました。これは、サンプルデータセットのElasticsearchレプリケーションにリレーショナルを設定するための標準プロセスの概要であり、さまざまなモデリングに影響を与えます。結果のデータを決定し、最後に、自分に最適なデータを選択するためのガイドラインをいくつか示します。
お役に立てば幸いです。いつものように、sales @ objectrocket.comに連絡することで、私たちからより多くの情報を得ることができます。
-
FilebeatおよびElasticsearchIngestPipelinesを使用したcsvファイルの解析
Elasticsearch 5の最も優れた新機能の1つは、ElasticsearchクラスターにLogstashスタイルの処理を追加する取り込みノードです。これにより、別のサービスやインフラストラクチャを必要とせずに、インデックスを作成する前にデータを変換できます。しばらく前に、Logstashを使用してcsvファイルを解析する方法について簡単なブログを投稿したので、比較のために、その取り込みパイプラインバージョンを提供したいと思います。 ここで紹介するのは、Filebeatを使用してデータを取り込みパイプラインに送信し、インデックスを作成し、Kibanaで視覚化する例です。 データ 無料
-
Google 検索に人物カードを追加する方法
広告とプロモーションは、現在の時代において非常に重要です。ビジネスでもポートフォリオでも、強力なオンライン プレゼンスを持つことは、キャリアアップに大いに役立ちます。 Google のおかげで、誰かが Google であなたの名前を検索したときに簡単に見つけられるようになりました。 はい、そのとおりです。あなたの名前またはビジネスが検索結果に表示されます 誰かがそれを検索した場合。あなたの名前に加えて、小さな略歴、職業、ソーシャル メディア アカウントへのリンクなど、その他の関連する詳細をきちんとした小さなカードに配置することができ、これが検索結果にポップアップ表示されます。これは人物カード