データマネジメント知識体系(DMBOK)第6章「データストレージとオペレーション」概説
イントロダクション
データストレージとオペレーションとは、格納されるデータを設計、実装し、サポートすること。
目的はデータ精製や取得から廃棄に至るライフサイクル全体の価値の最大化。
アクティビティ
データベースサポート
データベース技術サポート
データベース管理者(DBA)
最も確立され最も広く採用され最も成熟しているデータマネジメント業務
オペレーションとセキュリティ
ビジネス上の意義
企業が業務を遂行するためには情報システムが必要
データストレージとオペレーションのアクティビティはデータを頼りにする組織にとって不可欠
アクティビティの主要な動機は、事業の継続性
信頼できるデータストレージ基盤があれば、ITオペレーションが中断背されるリスクを最小限に抑えられる。
ゴールと原則
データストレージとオペレーションは、データマネジメントが持つ非常にテクニカルな側面を示す。
ゴール
データライフサイクル全体にわたるデータの可用性を管理する
データ資産の完全性を保証する
データ処理の性能を管理する
基本理念DBAが
自動化可能な業務の特定と実行
再利用を考慮したビルド(※)
ベストプラクティスの理解と適切な活用
データベース標準とサポート要件の整合性
開発プロジェクトの中でDBAが果たす役割に対する期待の設定
※再利用を考慮したビルド
汎用化され再利用可能うなでーたおオブジェクトを開発し、その使用を推奨し、アプリケーションがデータベーススキーマと蜜結合するのを防止する。
それを実現するためには、データベースビュー、トリガー、関数とストアドプロシージャ、アプリケーション・データオブジェクトとデータアクセス層、XMLとXSLT、ADO.NET型データセット、ウェブサービスなど様々なメカニズムがある。
DBAはデータを仮想化する最良の方法を見極められるはずである。データベースをできるだけ迅速に、簡単に楽に利用できるようにする、それが最終的なゴールである。
本質的な概念
データベース用語
データベース: 任意の格納データ群。構造やコンテンツを問わない。大きなデータベースでは以下のインスタンスやスキーマも使用される。
インスタンス: データベースソフトウェアが特定のストレージ領域に対して行うアクセス制御の単位。
スキーマ: データベース化インスタンスに含まれるデータベースオブジェクトのグループ。
ノード: 分散型データベースの一部として、処理かいずれの受け皿を持つ個々のコンピュータのこと。
データベースの抽象化: データベース機能が共通のAPIを通して呼び出されることである。ODBCはデータベースの抽象化を可能にするAPIの一例。
データライフサイクル管理
DBAはライフサイクル全体にわたって、データの正確性と一貫性を維持し、保証する。データを保存し、処理し、取得するすべてのシステムを設計し、実装し、利用する。
DBAはデータベースに対して発生するすべての変更に責任がある。データベースに対する詳細な変更を決定し、実装し制御する。
DBAはアプリケーションで使われるデータベースをQA環境や本番環境に移行する際、統制され、文書化され、監査可能なプロセスを使用する。
アドミニストレータ(管理者)
DBAはデータセキュリティ、物理データモデル、データベース設計で決定的に重要な役割を果たし、データベース環境の開発、テスト、DB特殊利用環境などをサポートする
本番環境を担当するDBA: パフォーマンスチューニング、バックアップとリカバリ、クラスタリングとフェールおーば、アーカイブ
アプリケーションを担当するDBA: アプリケーションが使うDEV QA / PRDのデータベースを担当
手続き型ロジックを担当するDBA: ストアドプロシージャ、トリガ、ユーザ定義関数の開発とサポート
開発を担当するDBA: データ設計業務に重点。データ探索用DBやサンドボックスなどの特殊利用も。
ネットワーク上のストレージ管理者: データストレージ・アレイを実現するハードとソフトウェアに携わる。
データベースアーキテクチャの種類
集中型
単一のDBを管理
分散型
連邦型
疎結合
蜜結合
ブロックチェーンデータベース
非連邦型
仮想化
データベースの処理タイプ
ACID: トランザクション処理の信頼性の実現に不可欠な制約
Atomicity(原子性)トランザクションの一部が落ちたら全体を落とす
Consistency(一貫性)すべてのルールを完了していないと無効とされる
Isolation(独立性)各トランザクションはそれぞれ独立
Durability(永続性)いったん完了すると元に戻せない
BASE: ビッグデータで一般的
基本的に利用可能(BAsically Available)可用性はあるレベルまで
ソフトステート(Soft State)データは最新とは限らない
最終的な一貫性の確保(Eventual Consistency)常には保証されない
CAP: 分散SYS。以下のいずれか2つの特性しか共有データシステムに存在できない
一貫性(Consistency)
可用性(Availability)
文壇体制(Partition Tolerance)
データストレージ媒体
ディスクとストレージエリア・ネットワーク(SAN): ディスクアレイはSANにまとめられる
インメモリ: アナリティクスのリアルタイム処理に限定されるのは投資額の大きさのため
カラム圧縮ソリューション: 圧縮技術を利用して列データを保存することでI/O処理を提言する
フラッシュメモリ: メモリベースのアクセス速度とディスクベースの永続性を併せ持つ
データベース構成
階層型データベース
リレーショナルデータベース
非リレーショナルデータベース
一般的なデータベースプロセス
アーカイブ
最大容量と俗化の予測
変更データキャプチャ
破棄
レプリケーション
耐障害性と復旧
保持
シャーディング
アクティビティ
データベース技術のサポート
データの保存と管理用のソフトウェアの選択とその保守にかかわる
ITILの原則がデータ技術の管理に適用される
データベースオペレーションサポート
ソフトウェアが管理するデータとプロセスにアッ変わる
データベースはマネージドストレージ領域においてある
DBAはストレージ構造を割り当て、物理データベースを管理し、サーバー上のDBMS環境を確立して様々なデータストレージ・アプリケーションを管理する
データベース技術の管理
データベース技術の特徴に対する理解
技術がどのように機能し、特定業務に対してどのような価値を提供できるかを理解することが重要
データプロフェッショナルは推奨する技術を最終的に決定する前に、候補となるデータベースぎ鬱の特徴を理解しておくことが必要
一つのデータベースアーキテクチャやDBMSタイプが、あらゆるニーズに対応していると想定してはならない
データベース技術の評価
DBMSソルトウェアを選択する際に考慮すべき要素
製品のアーキテクチャと複雑さ
ストリーミングレートを含む容量と速度の限界
トランザクション処理、ビジネスインテリジェンス、個人プロファイルなどのアプリケーションプロファイル
店舗らる計算サポートなどの特定機能
ハードウェアプラットフォームとオペレーティングシステムのサポート
入手できるサポート・ソフトウェアツール
リアルタイムの統計情報を含む性のベンチマーク
スケーラビリティ
ソフトウェア、メモリ、ストレージ要件
エラー処理とレポート作成を含む耐障害性
以下に上げる要因は購買担当者とツールベンダに関係している
技術的リスクに対する組織の選好
訓練を受けた技術鞘を提供できる可能性
ライセンス、メンテナンス、コンピュータ資源などの所有コスト
ベンダーの評価
ベンダーサポートポリシーとリリーススケジュール
ベンダーの顧客事例
管理、ライセンス、サポートを含んだ製品の費用が、製品の業務価値を超えてはならない。本格的な運用を開始する前に、PoCなどを開始して、実際にかかるコストと利点を把握するとよい
データベース技術の管理と監視
DBAはヘルプデスクやITベンダーのサポートの協力を得て、ユーザーの問題を理解、分析、解決する
DBAはデータモデリング、ユースケース分析、アプリケーション・データアクセスなどのアプリケーション開発スキルに関する実務知識を持っている必要がある
DBAはデータベースの定期的なバックアップとリカバリテストの実行に責任を持つ
DBAは業務ユーザやアプリケーション開発者と協力して、技術が最も生かされるような適用法を調査したり、発生する問題や課題に対処したりする
データベースの管理
要件の理解
ストレージ要件の定義
DBAはDBMSアプリケーションのためのストレージシステムとNoSQLをサポートするためのファイル・ストレージシステムを実装する
仕様パターンの特定
データベースの基本的なパターンの種類は次の通り
トランザクション型
大規模なデータセットの書き込みおよび検索型
時間依存型
ロケーション依存型
優先順位型
DBAは使用するパターンの山谷を予測し、ピークに対処し、谷を利用するようにプロセスを実行する必要がある
アクセス要件の定義
データアクセスはデータの保存、取得、捜査に関するアクティビティ
ACIDタイプ: SQL、ODBC、JDBC、XQJ、ADO.NET、XML、Xquery、X Path、ウェブサービス
BASEタイプ: C、C++、REST、XML、Java
事業継続性の計画
組織はシステムやデータ利用機能に影響を及ぼす災害や、有害事象が発生した場合に備えて事業継続性を計画する必要がある
各データベースに、その重要度に従い復元の優先順位を与える
経営幹部と組織の事業継続担当グループは、データ復旧計画を検討し承認しておく
DBAグループは計画の正確性と包括性を定期的に確認すべき
すべてのバックアップを安全なオフサイト施設に保管する
バックアップの作成
データ保護にかかるコストとデータが持つ重要性とのバランスをとる
増分バックアップに加えて、定期的な各データベースの完全バックアップを作成する
バックアップファイルはデータベースとは別のファイルシステムに保存し、別のストレージメディアにバックアップし、毎日のバックアップコピーを安全なオフサイト施設に保管する
ホットバックアップとコールドバックアップ
データのリカバリ
DBAは基盤チームと協力して、バックアップを含む記憶媒体を再度マウントしてリカバリを実行する
データのリカバリを定期的にテストすることが重要である
データベースインスタンスの実装
物理ストレージ環境の管理
データベース・あp癖巣統制管理
ストレージコンテナの作成
物理データモデルの実装
データの取り込み
データの李プリケーション管理
データベース性能の管理
データベース性能に対するサービスレベルの設定
データベースの可用性の管理
管理性、復旧可能性、信頼性、保守性
計画的 / 計画外の停止、アプリケーションの問題、データの問題、ヒューマンエラー
データベースの稼働管理
データベース性能に対するサービスレベルの維持
トランザクション性能とバッチ性能
問題の修復
メモリ割り当て不足、ロックとブロック、不正確なデータベース統計、稚拙なコーディング、非効率で複雑なテーブル結合、不十分なインデックス、アプリケーションアクティビティ、オーバーロードされたサーバー、データベースの変動、暴走クエリ
代替環境の維持
開発環境、テスト環境、サンドボックス環境、代替の本番環境
テスト用データセットの管理
ソフトウェアテストは労働集約型であり、システム開発コストの半分近くを占めている
テストでは、与えられた入力セットが期待される出力を生成することを検証する。異常で、極端で、例外的な、予期せぬ入力鬼応答するプログラミング機能を試すことも含まれる。
サンプルデータは実際の本番データの一部を取り出したものでも、本番データから生成しても構わない。必要に応じてマスキングする。
DBAはプロジェクトテストデータを監視し、不要なテストデータを定期的に破棄することにより、容量を維持できるようにする。
生成されるテストデータの量は時間、コスト、品質などの考慮項目によって決定され制限される。
データ移行の管理
データ移行とはストレージの種類、フォーマット、コンピュータシステム間で変換を最小限に抑えてデータを転送するプロセスである
データ移行はサーバーやストレージ装置の交換、アップグレード、ウェブサイトの統合、サーバーの保守、データセンターの再配置など様々な理由で発生する。以降は通常プログラムによって実行され、ルールに基づいて自動化される
ストレージ管理者の多くの日常的タスクは、データ移行の手法を使えば単純かつ同時に完了できる
データの品質を高めるためには通常、冗長な情報や不要な情報を排除して、データ移行時に自動、手動でデータを修復する
導入ガイドライン
準備状況の評価とリスクアセスメント
データ損失: リスク軽減策、SLAの監査とデータ監査の実施
技術対応力: NoSQL、ビッグデータなどの新技術の習得
組織と文化変革
DBAは組織に対し自分たちの仕事が持つ価値を効果的に伝えられないことが多い。データ関連業務を抽象的な減速や手法とみなして関係する人間的要素を無視してしまうと「我々vs彼ら」という心理が伝播し、DBAは独善的で、非現実的で、役に立たない、仕事の妨害になる存在と捉えられる恐れがある