(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Elasticsearch入門】シャードとは?

スポンサーリンク

Elasticsearchにおけるシャード

シャード(Shard)とは、インデックスに関する用語です。

ちなみにElasticsearchにおけるインデックスとはDBの世界における表を指します。
簡易的な対応関係は以下のようになっています。

Elastic Search RDBMS
インデックス テーブル
ドキュメント レコード
フィールド フィールド

シャードとは

shard : 破片

という英語名にも通じますが、シャードとはインデックスを分割したものです。

なぜ分割する必要があるのでしょうか。
二例紹介します。

大量のインデックスを格納する

極端な例ですが、あるサーバで割り当てられているデータ領域以上のディスク容量を占有するインデックスは、複数のサーバに分担しないとデータを保持できません。
その際に、インデックスを分割する必要があります。

レプリケーションを行う

こちらがシャードの主な利用法です。

インデックスのコピーを別サーバに保持していた場合、サーバ障害時でも可用性が維持できます。
こういった利用の場合、元のインデックスをプライマリーシャード、複製しているものをレプリカシャードと呼びます。

Elasticsearchでは、データ登録のリクエストの際にプライマリシャードにデータを保持し、レプリカシャードにデータをコピーします。
このデータを格納する範囲をクラスタとして管理しています。

まとめ

シャードとはインデックスを分割したもので、主に情報を分散することで可用性を維持するために利用されます。

クラスタ内に2つのノードがある場合は、デフォルトで採用される機構ですので覚えておくとどこかで役立つと思います。

以上、ご参考ください。