LoginSignup
0
1

More than 3 years have passed since last update.

データストア(データベース)における汎用的な機能分類について

Posted at

概要

データストアの製品選定を行う際に、データストアに求められる機能を分類してみました。
この機能分類を分解していき、製品間で比較することを想定しております。

データストアとは、データベースだけでなく、データレイク(ストレージ)を含めることを想定しております。

私が考えているデータストアとしては、データ分析基盤における概念モデル(リファレンスアーキテクチャ)の下記を含むことを想定しております。

  • ストレージ
  • オペレーショナルデータストア (ODS)
  • データレイク
  • データ統合サービス
  • データウェアハウス(DWH)【分析データストア(コールドパス)】
  • 分析データストア(ホットパス)
  • セマンティックデータモデル
  • データ仮想化ソリューション
  • クエリエンジン

データ分析基盤における概念モデル(リファレンスアーキテクチャ)については下記の記事をご確認ください。

データストアの機能

 データストアの機能分類

# 第一分類 機能分類
A 機能要件 接続の提供
B 機能要件 メタデータ定義
C 機能要件 データ品質保証
D 機能要件 データ蓄積
E 機能要件 データの問い合わせ
F 機能要件 プログラミング
G 機能要件 オーケストレーション
H 機能要件 クエリ最適化
I 機能要件 データ活用
J 機能要件 データ書き込み
K 機能要件 データ取込
V 非機能要件 運用保守性
W 非機能要件 セキュリティ
X 非機能要件 拡張性
Y 非機能要件 回復性
Z 非機能要件 可用性

データストアの機能詳細

# 第一分類 機能分類_1 機能分類_2 機能項目
A010 機能要件 接続の提供 エンドポイントの利用 エンドポイントの利用
A020 機能要件 接続の提供 APIの利用 ODBCによるデータ処理
A030 機能要件 接続の提供 APIの利用 JDBCによるデータ処理
A040 機能要件 接続の提供 APIの利用 REST APIによるデータ処理
A050 機能要件 接続の提供 APIの利用 SDKによるデータ処理
A060 機能要件 接続の提供 APIの利用 CLIによるデータ処理
B010 機能要件 メタデータ定義 DDL(Data Definition Language) DDLの利用
B020 機能要件 メタデータ定義 サポートしているデータ型 サポートしているデータ型
B030 機能要件 メタデータ定義 動的スキーマ 動的スキーマの利用
B040 機能要件 メタデータ定義 データカタログから配信されたスキーマの利用 データカタログから配信されたスキーマの利用
B050 機能要件 メタデータ定義 データベースオブジェクトの定義 複数のインスタンスの定義
B060 機能要件 メタデータ定義 データベースオブジェクトの定義 複数のデータベースの定義
B070 機能要件 メタデータ定義 データベースオブジェクトの定義 複数のスキーマの定義
B080 機能要件 メタデータ定義 データベースオブジェクトの制約 マルチバイト文字のオブジェクトでの利用
B090 機能要件 メタデータ定義 外部データストアオブジェクトの定義 外部データストアの参照
C010 機能要件 データ品質保証 制約の利用 一意性制約
C020 機能要件 データ品質保証 制約の利用 NOT NULL制約
C030 機能要件 データ品質保証 制約の利用 主キー制約
C040 機能要件 データ品質保証 制約の利用 参照整合性(外部キー)制約
C050 機能要件 データ品質保証 制約の利用 チェック制約
C060 機能要件 データ品質保証 制約の利用 エッジ制約
C070 機能要件 データ品質保証 データプロファイル データプロファイル
D010 機能要件 データ蓄積 サポートしているデータストアモデル サポートしているデータストアモデル
D020 機能要件 データ蓄積 サポートしているデータ保持方針 サポートしているデータ保持方針
D030 機能要件 データ蓄積 サポートしているトランザクション分離レベル サポートしているトランザクション分離レベル
D040 機能要件 データ蓄積 サポートしているデータモデルリング技法 サポートしているデータモデルリング技法
D050 機能要件 データ蓄積 サポートしているデータ形式 構造化データのデータ蓄積
D060 機能要件 データ蓄積 サポートしているデータ形式 半構造化データのデータ蓄積
D070 機能要件 データ蓄積 サポートしているデータ形式 非構造化データのデータ蓄積
D080 機能要件 データ蓄積 データの変更管理 データのバージョニング(タイムトラベル)
D090 機能要件 データ蓄積 データの変更管理 変更データキャプチャ
D100 機能要件 データ蓄積 HTAP(Hybrid transactional/analytical processing)の対応 OLTP型データストアにて分析用クエリが利用可能な領域への自動蓄積
E010 機能要件 データの問い合わせ クエリ実行方法 SQLによるクエリ実行方法
E020 機能要件 データの問い合わせ クエリ実行方法 REST APIによるクエリ実行方法
E030 機能要件 データの問い合わせ クエリ実行方法 GraphQLによるクエリ実行方法
E040 機能要件 データの問い合わせ クエリ実行方法 SDKによるクエリ実行方法
E050 機能要件 データの問い合わせ サポートしているデータ形式 構造化データへのクエリ
E060 機能要件 データの問い合わせ サポートしているデータ形式 半構造化データへのクエリ
E070 機能要件 データの問い合わせ サポートしているデータ形式 非構造化データへのクエリ
E080 機能要件 データの問い合わせ 外部データストアへのクエリ 外部データストアへのクエリ実行
E090 機能要件 データの問い合わせ 外部データストアへのクエリ サポートしている外部データストアのファイル形式
F010 機能要件 プログラミング ユーザー定義関数 ユーザー定義関数の利用
F020 機能要件 プログラミング 動的SQL 動的SQLの利用
F030 機能要件 プログラミング ストアードプロシージャ ストアードプロシージャの利用
F040 機能要件 プログラミング トリガー トリガーの利用
F050 機能要件 プログラミング ビュー ビューの利用
F060 機能要件 プログラミング ビュー 外部テーブルを含むビューの利用
F070 機能要件 プログラミング 外部APIの利用 外部REST APIの利用
F080 機能要件 プログラミング 外部ライブラリーの利用 外部ライブラリーの利用
G010 機能要件 オーケストレーション パイプライン定義 他プロセス実行
G020 機能要件 オーケストレーション パイプライン定義 パイプライン定義
G030 機能要件 オーケストレーション プロセスコントロール パイプライントリガー登録
G040 機能要件 オーケストレーション プロセスコントロール パイプライン実行ログ保持
G050 機能要件 オーケストレーション プロセスコントロール パイプラインアラート
G060 機能要件 オーケストレーション プロセスコントロール パイプライン処理のエラー時の再実行
H010 機能要件 クエリ最適化 インデックスの利用 クラスター化インデックスの設定
H020 機能要件 クエリ最適化 インデックスの利用 非クラスター化インデックスの設定
H030 機能要件 クエリ最適化 データ保持方法の最適化 列ストアインデックスの設定
H040 機能要件 クエリ最適化 マテリアルビューの利用 マテリアルビュー(単一テーブルの集計結果を保持)の設定
H050 機能要件 クエリ最適化 マテリアルビューの利用 マテリアルビュー(複数テーブルの結合後の集計結果を保持)の設定
H060 機能要件 クエリ最適化 マテリアルビューの利用 マテリアルビュー(外部データストア)の設定
H070 機能要件 クエリ最適化 パーティションの利用 水平的パーティション分割(シャーディング)の設定
H080 機能要件 クエリ最適化 パーティションの利用 垂直的パーティション分割の設定
H090 機能要件 クエリ最適化 水平的パーティション分割の設定方法 レンジ(範囲)パーティションの設定
H100 機能要件 クエリ最適化 水平的パーティション分割の設定方法 リストパーティションの設定
H110 機能要件 クエリ最適化 水平的パーティション分割の設定方法 ハッシュパーティションの設定
H120 機能要件 クエリ最適化 テーブルの分散方法 ラウンドロビン分散テーブル
H130 機能要件 クエリ最適化 テーブルの分散方法 ハッシュ分散テーブル
H140 機能要件 クエリ最適化 テーブルの分散方法 レプリケート テーブル
H150 機能要件 クエリ最適化 リソースの再利用 結果セットキャッシュの利用
H160 機能要件 クエリ最適化 リソースの最適化 データの統計情報更新
H170 機能要件 クエリ最適化 リソースの最適化 ワークロード管理
H180 機能要件 クエリ最適化 ストレージ最適化 インデックスの最適化
H190 機能要件 クエリ最適化 ストレージ最適化 データ配置の最適化(VACUUM)
H200 機能要件 クエリ最適化 パフォーマンスの自動チューニング インデックスの自動設定
H210 機能要件 クエリ最適化 パフォーマンスの自動チューニング マテリアルビューの自動設定
H220 機能要件 クエリ最適化 パフォーマンスの自動チューニング データの統計情報の自動更新
H230 機能要件 クエリ最適化 パフォーマンスの自動チューニング パーティションの自動設定
I010 機能要件 データ活用 可視化 可視化の実施
I020 機能要件 データ活用 統計解析 統計解析の実施
I030 機能要件 データ活用 シミュレーション シミュレーションの実施
J010 機能要件 データ書き込み データの更新方法 全件更新
J020 機能要件 データ書き込み データの更新方法 差分更新
J030 機能要件 データ書き込み データの更新方法 増分更新
J040 機能要件 データ書き込み データの更新方法 履歴保持型差分更新
J050 機能要件 データ書き込み 連携タイミング(レイテンシー)に応じた処理 バッチ処理により書き込み
J060 機能要件 データ書き込み 連携タイミング(レイテンシー)に応じた処理 準リアルタイムとイベント駆動により書き込み
J070 機能要件 データ書き込み 連携タイミング(レイテンシー)に応じた処理 リアルタイム(低レイテンシまたはストリーミング)による書き込み
J080 機能要件 データ書き込み データ書き込みの最適化 データの一括書き込み
J090 機能要件 データ書き込み データ書き込みの最適化 ストレージからの並列書き込み
K010 機能要件 データ取込 データレプリケーション トランザクションレプリケーション
K020 機能要件 データ取込 データレプリケーション データ同期
K030 機能要件 データ取込 他データストアへのデータ取込 外部ストレージへのエクスポート
K040 機能要件 データ取込 他データストアへのデータ取込 ODBCによるデータ取込
K050 機能要件 データ取込 他データストアへのデータ取込 JDBCによるデータ取込
K060 機能要件 データ取込 他データストアへのデータ取込 REST APIによるデータ取込
K070 機能要件 データ取込 他データストアへのデータ取込 CLIによるデータ取込
V010 非機能要件 運用保守性 運用支援 スキーマのバージョン管理
V020 非機能要件 運用保守性 リリース支援 スキーマの差分反映
V030 非機能要件 運用保守性 リリース支援 データベース定義の自動差分反映
V040 非機能要件 運用保守性 リリース支援 ソフトウェアのバージョン管理
V050 非機能要件 運用保守性 パフォーマンス監視 クエリの発行履歴の保持
V060 非機能要件 運用保守性 パフォーマンス監視 クエリ実行時のリソース利用情報の保持
V070 非機能要件 運用保守性 パフォーマンス監視 クエリ実行時の実行計画の保持
V080 非機能要件 運用保守性 パフォーマンス監視 パフォーマンスに関するアラート
W010 非機能要件 セキュリティ 認証 基本認証の利用
W020 非機能要件 セキュリティ 認証 多要素認証の実施
W030 非機能要件 セキュリティ 認証 多段階認証の実施
W040 非機能要件 セキュリティ 認証 外部IDサービスの利用
W050 非機能要件 セキュリティ データストアシステムへの権限付与 SQL命令(DDL、DCL)相当に対する実行の権限付与
W060 非機能要件 セキュリティ データストアシステムへの権限付与 オブジェクト(スキーマ)一覧の閲覧の権限付与
W070 非機能要件 セキュリティ データストアシステムへの権限付与 子オブジェクトへの継承の権限付与
W080 非機能要件 セキュリティ データストアシステムへの権限付与 データ参照の権限付与
W090 非機能要件 セキュリティ データストアシステムへの権限付与 データ挿入・更新・削除の権限付与
W100 非機能要件 セキュリティ データストアシステムへの権限付与 データストアに対するデータアクセス者の認証による権限付与
W110 非機能要件 セキュリティ データへの権限付与 ルールベースによる行レベルセキュリティ
W120 非機能要件 セキュリティ データへの権限付与 データ権限(認可)テーブルを利用した行レベルセキュリティ
W130 非機能要件 セキュリティ データへの権限付与 列への参照権限付与による列レベルセキュリティ
W140 非機能要件 セキュリティ データへの権限付与 永続データマスキングによる列レベルセキュリティ
W150 非機能要件 セキュリティ データへの権限付与 動的データマスキングによる列レベルセキュリティ
W160 非機能要件 セキュリティ 物理的なセキュリティ
W170 非機能要件 セキュリティ 監視 監査ログデータの生成
W180 非機能要件 セキュリティ 境界 セキュリティ監視サービスの利用
W190 非機能要件 セキュリティ ネットワーク ファイヤーウォールの設定
W200 非機能要件 セキュリティ アプリケーション
W210 非機能要件 セキュリティ データ データの暗号化
X010 非機能要件 拡張性 データ容量の拡張 データ容量の拡張
X020 非機能要件 拡張性 同時実行数 同時実行数
X030 非機能要件 拡張性 コンピューティングリソースの拡張 スケールアップ (垂直方向のスケーリング)
X040 非機能要件 拡張性 コンピューティングリソースの拡張 ノードのスケールアウト (水平方向のスケーリング)
X050 非機能要件 拡張性 コンピューティングリソースの拡張 クラスターのスケールアウト (水平方向のスケーリング)
X060 非機能要件 拡張性 コンピューティングリソースの拡張 コンピューティングリソースのマルチ化
Y010 非機能要件 回復性 偶発的なリソース削除への対応 偶発的なリソース削除への対応
Y020 非機能要件 回復性 データセンターの一部に対する障害対応 データセンターの一部に対する障害対応
Y030 非機能要件 回復性 データセンター全体に対する障害対応 データセンター全体に対する障害対応
Y040 非機能要件 回復性 バックアップ 自動バックアップ
Y050 非機能要件 回復性 バックアップ 手動バックアップ
Y060 非機能要件 回復性 バックアップ バックアップファイルのエクスポート
Y070 非機能要件 回復性 バックアップ バックアップからの復元
Y080 非機能要件 回復性 バックアップ ポイントインタイムリストア
Z010 非機能要件 可用性 可用性の最適化 フォールトレランス
Z020 非機能要件 可用性 サービスレベルアグリーメント サービス レベル アグリーメント
Z030 非機能要件 可用性 計画的なメンテナンスへの対応 計画的なメンテナンスへの対応
Z040 非機能要件 可用性 データセンターの一部に対する障害対応 データセンターの一部に対する障害対応
Z050 非機能要件 可用性 データセンター全体に対する障害対応 データセンター全体に対する障害対応

前提知識

データストアモデル一覧

# データストアモデル
1 リレーショナル型データベース
2 キーバリュー型データベース
3 ドキュメント型データベース
4 グラフ型データベース
5 データ分析型データベース
6 列指向型データベース
7 検索エンジン型データベース
8 時系列データベース
9 空間データベース
10 オブジェクトストレージ
11 ファイル共有ストレージ

データモデル一覧

# データモデル
1 リレーショナルモデリング(3NF)
2 データヴォールトモデリング(DV)
3 ディメンションナルモデリング(DM)
4 第一正規形(大福帳)モデリング(1NF)
5 NoSQL

データ保持方針

# データの保持方針 説明 代表的なサービス
1 メモリとストレージの最適利用型 データをシステムが管理しているストレージに保持しておき、必要に応じてメモリに展開して処理する方法。 PostgreSQL、Spark
2 OLTP最適化インメモリ型 データの書き込みとデータの読み込みに最適化できるようにデータをメモリに保持しておき処理する方法。 SAP HANA、Redis
3 クエリ最適化インメモリ型 データの読み込みに最適化できるようにデータをメモリに保持しておき処理する方法。 Power BIデータセット
4 ストレージ集中型 データをストレージに保持しておき、最小減のメモリのみ利用するように、中間結果をストレージに保存しながら処理する方法。 Hadoop

データ処理の類型

# データ処理分類 データ処理分類 説明
1 データ抽出 データ抽出 ソースのデータストアからデータを抽出する処理。
2 データ変換 データ変換 データを変換する処理。
3 データ変換 データのメタデータ変換 データのメタデータ(データ型、データの構造化等)を実施する処理。
4 データ変換 データのフィルタリング 指定の条件のみのデータに変換する処理。
5 データ変換 データの並び替え データの並び替えを実施する処理。
6 データ変換 データの結合 複数のデータを結合する処理。
7 データ変換 データの集計 データを集計する処理。
8 データ変換 データのユニオン データをユニオンする処理。
9 データ変換 分析関数(Parttition BY句相当機能)の利用 分析関数(Parttition BY句相当機能)を利用する機能。
10 データ変換 データクレンジング 現在のデータの品質を改善する処理
11 データ変換 データ強化 参照データとのマッピングや変換仕様の実装を行うことで、データの付加によるデータの品質を改善する処理。
12 データ取込 データ取込 ターゲットのデータストアにデータを取り込む処理。
13 データの問い合わせ データの問い合わせ 内部で管理しているストレージからデータを読み込む処理。
14 データ書き込み データ書き込み 内部で管理しているストレージにデータを書き込む処理。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1