-
Notifications
You must be signed in to change notification settings - Fork 0
MS_LargeDataProcessing3
- 戻る(大量データの処理方式)
- 大量データの処理方式3
- 大量データの処理方式1 / 大量データの処理方式2
大量データ向けのプロダクトを使用した処理方式についてまとめる予定。
-
RDB
- インメモリ データベース
- SSD アプライアンス、インスタンス
- Elastic DB
-
非 RDB
- DWH
- NoSQL
- 分散処理系
補足: SQL Server 2014 で導入された In-Memory OLTP(旧称 Hekaton)。
メモリ最適化テーブルとネイティブ コンパイル ストアド プロシージャにより、
ラッチ・ロックを使わない同時実行制御(楽観的な多バージョン)を実現する。
短いトランザクションが高頻度で衝突するワークロードで効果が大きい。
分離レベルの考え方は
DBMSのロック・分離戦略と同時実行制御を参照。
SQL Server 2014 のバッファー プール拡張のような
テンポラリの領域として如何に使用する。
- SQL Server SSD Appliance、まずは 6 社から一斉に提供開始 - @IT
http://www.atmarkit.co.jp/ait/articles/1212/17/news062.html - 圧倒的なパフォーマンスを、アプライアンスの手軽さで 200 万円台から [SQL Server SSD Appliance]
- 仮想マシンに SSD 付きインスタンス D シリーズが追加されたので
ディスク性能を測定してみました at SE の雑記
http://blog.engineer-memo.com/2014/09/23/
補足(最新化): 本節は「SSD がまだ特別だった時期」の記述である。
現在は、
- Azure の VM は Premium SSD / Ultra Disk が標準的な選択肢
- バッファー プール拡張は、メモリを増やすほうが安価になったため
使われる場面がほぼ無いという状況で、「SSD かどうか」より
IOPS とスループットの上限、およびレイテンシを見て選ぶ設計になっている
(SQL Server のファイルの配置も参照)。
-
RDB には、トランザクション処理の信頼性を保証するために求められる性質(ACID)を
実装するためスケールアウトが困難。 -
Elastic DB は以下を組み合わせた機能。
- 複数 DB インスタンスのプールを管理する機能
- 分割キーにより複数 DB インスタンスへの水平分散
- 分散トランザクション
Elastic Scale, Elastic Database Pool
- .NETでバッチは書けるか?(
MS_DotNetBatch.md) - SQL Server 大量データ処理時の性能問題
- 構造化データ
- 非ビッグデータ
- バッチ処理(分析集計)
- SSAS
- Azure Synapse
- Azure Analysis Services(Azureのデータ・ストア)
補足(最新化): Azure Synapse Analytics は、
現在 Microsoft Fabric に統合される方向にある
(Synapse の各機能が Fabric のワークロードとして再編されている)。
新規に DWH を構築する場合は Fabric(または Databricks)を
選択肢に入れることになる。また、SQL Server 側で分析用途に効くのは
列ストア インデックス(SQL Server のインデックス)で、
「DWH 製品を導入する前に、まず列ストアで足りないか」を
検討する価値がある。
NoSQL(DNET_NoSQL.md)
- 非構造化データ
- ビッグデータ
- オンライン処理
NoSQL(DNET_NoSQL.md)を参照。
分散処理(DNET_DistributedProcessing.md)
- 非構造化データ
- ビッグデータ
分散処理(DNET_DistributedProcessing.md)を参照。
プロダクト毎に様々なクエリがある。
- 元来、SQL は RDB 向けのクエリを意味する。
- 昨今、RDB ではない NoSQL のクエリにも SQL と言う文言が利用されている。
最も代表的で標準化されている RDB 向けのクエリ(SQL)。
Spark(.NET for Apache Spark)向けのクエリ。
Apache Hive(DNET_ApacheHive.md)のクエリ。
SQL Serverの NoSQL のクエリ。
補足: PolyBase は「NoSQL のクエリ」というより、
外部データ ソース(Hadoop / Azure Blob / 他の RDBMS など)を
T-SQL から通常のテーブルのように参照する仕組み(データ仮想化)である。
SQL Server 2019 以降は Oracle / Teradata / MongoDB / ODBC 経由の
汎用ソースにも対応が広がっている。
Teradata の SQL-H
Tags: 移行, データアクセス, ビッグデータ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。