DynamoDBの公式ドキュメントを読む際に必要な前提用語

## はじめに
[DynamoDBの公式ドキュメント](https://docs.aws.amazon.com/dynamodb/index.html) を読む際に、事前に知っておく必要のある用語をまとめました。

## 用語集
順不同に記載しています。
### フルマネージド
完全運用保守管理代行

### NoSQL
Not only SQLの略
SQL言語を使わずにデータの操作ができるデータベース
Key-Value型データベースを指して言うことが多い

### スケーラビリティ
機器やソフトウェア、システムなどの拡張性、拡張可能性のこと

### SPOF(単一障害点)
Single Point of Failure
その箇所が停止するとシステムの全体が停止するような箇所。

### パーティショニング
論理的に1つの大きなテーブルを、物理的に小さなパーティションに分けること

### パーティション
区画、分割
ハードディスクやSSDなどの記憶装置は、利用開始時に内部を複数のパーティションに分割し、それぞれをあたかも一台の独立したストレージのように取り扱うことができる。区画に分割する処理のことをパーティショニング（partitioning）という。

### プロビジョニング
必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくこと。

### スループット
単位時間当たりの処理能力のこと

### キャパシティ
保持、受け入れ、または取り込む能力のこと

### ACK(アック)
肯定応答:acknowledgement
二者間の通信で、相手方に何らかの肯定的な応答を返す際に送られる信号やデータ、パケットなどのこと。
「接続要求を受理した」「データが正しく受信できた」といった内容を伝達するために用いられる。

### 結果整合性
分散データベースの文脈で使われることが多く、データの更新の一貫性を即時担保するものではなく、更新後に一定時間経過していれば正しく更新データを取得できるという整合性の考え方。
データの更新でデータベースがロックされることはないため、可用性とスケーラビリティを維持することができる。

### スキーマ
データベースの構造を定義したもの

### スカラー
1つの数値で示される定数や変数のこと

### ストリーム
連続したデータの流れや、データの送受信や処理を連続的に行うこと

### オンデマンド
ユーザの要求があった際に、その要求に応じてサービスを提供すること。
ブラウザなどを通じてユーザのリクエストに応じて、テキストや画像などのコンテンツを配信しているインターネット上の多くのデータ配信は、オンデマンド方式といえる。

### ワークロード
仕事量、作業負荷などの意味
稼働中のコンピュータにかかっている負荷の大きさ、実行中のソフトウェアによって処理能力が占有される度合いのこと

### スロットリング
一定時間内に送信できるリクエスト数を制限すること

### 透過的
仮想的（バーチャル）」の反対(実際に存在しないものを、あたかもその場に存在するように見せる)
実際に存在するものを存在しないように見せる

### シームレス
継ぎ目のないという意味で、複数のサービスを連携させ、サービス間を意識させることなく、ひとつのサービスのように提供すること

### アドホック・クエリ
その場限りで使い捨てのクエリ。

### レイテンシ
待ち時間、潜在、潜伏などの意味
機器や装置の間で、一方がもう一方にデータや信号の伝送を要求してから、実際に届き始めるまでの待ち時間のこと

### オフロード
あるシステムの負荷を他の機器などが肩代わりして軽減する仕組み
ある特定のデータ処理に特化したハードウェアをコンピュータに装着し、CPUの処理を肩代わりして負荷を軽減することで、システム全体の処理性能を向上させること

### ディメンション
次元

### アトミックカウンタ
他の書き込みリクエストを妨害することなく、数値をカウントアップ/ダウンするようなカウンタ

### ペイロード
パケット通信においてパケットに含まれるヘッダやトレーラなどの付加的情報を除いた、データ本体のことである。

### ランタイムエラー
コンピュータプログラムの実行時に発生するエラーのこと。
実行を継続できないほどの致命的な問題であり、プログラムはその時点で実行を中断して直ちに異常終了させられる。

### エクスポネンシャルバックオフ
「指数関数的後退」つまり、指数関数的に処理のリトライ間隔を後退させるアルゴリズムのこと

### メタデータ
データについてのデータ。あるデータそのものではなく、そのデータを表す属性や関連する情報を記述したデータのこと。データを効率的に管理したり検索したりするためには、メタデータの適切な付与と維持が重要となる。

### バルク・ロード
大量のデータをインポートすること

### TTL（有効期限）
Time To Live

### アクティビティ
ITの分野では、人間の行動や作業、業務手順の単位、システムや回線の稼動状況などの意味で用いられることが多い。

### 射影
関係演算やリレーショナルデータベースの操作において、ある関係（表）から指定した条件に従って特定のいくつかの属性（列）を抜き出す操作や、そのような操作の結果得られる関係（表）のことを射影ということが多い。

### トポロジ
ネットワークの物理的・論理的な形態を指し示す用語で、そのネットワーク内でネットワーク機器や端末がどのような位置関係で接続されているかを表わす

### オンデマンド
ユーザの要求があった際に、その要求に応じてサービスを提供する事を言う。ブラウザなどを通じてユーザのリクエストに応じて、テキストや画像などのコンテンツを配信しているインターネット上の多くのデータ配信は、オンデマンド方式といえる

### レプリケーション
あるコンピュータやソフトウェアの管理するデータ集合の複製（レプリカ）を別のコンピュータ上に作成し、通信ネットワークを介してリアルタイムに更新を反映させて常に内容を同期すること

### スパイクアクセス
Webサイトへの急激なアクセス増加のこと。リソースモニターが急激にとがることから、スパイクと名付けられたとのこと。

### シャーディング
DBにおける負荷分散手法の１つ。リクエスト増加などで単一のマスターDBの運用で限界がある場合に、一定のルールに従いデータを複数のDBに振り分けることでアクセスを分散させる。

### マネージドサービス
サービスの利用に必要な機器などの運用や管理、導入時に必要な機器の設置や設定なども一体として提供するサービスのこと

### スケーリング
装置やソフトウェア、システムなどの性能や処理能力を、要求される処理量に合わせて増強したり縮減したりすること

### クラスタ
同種のものがたくさん密集していること

### メトリクス
様々な活動を定量化し、その定量化したデータを管理に使えるように加工した指標のこと。何かしらデータを収集して、そのままの形ではなくて、計算や分析を加えてわかりやすいデータ（数値）に変換したもの

## 参考URL
自分が公式ドキュメントを読む前に目を通して、分かりやすかった記事です。

[DynamoDB の基礎知識とまとめ](https://qiita.com/hshimo/items/e5ad98b21786d796f1da)
[DynamoDBを使いこなして精神的安定を手に入れた](https://qiita.com/walkers/items/9b39d752cc5b8df7b4b5)
[何が違う？DynamoDBとRDS](http://blog.serverworks.co.jp/tech/2017/04/12/what_is_different_dynamodb_and_rds/)
[【AWS公式ドキュメントを噛み砕く】DynamoDB入門者に説明する資料](https://qiita.com/nh321/items/9f11cff0afc1d31586c7)
[AWS Black Belt Online Seminar 2017 Amazon DynamoDB](https://www.slideshare.net/AmazonWebServicesJapan/20170809-black-belt-dynamodb)