2

医療ソフトウェアの分析を実装しています。処理するデータは、主に予定に関するものです。レポートを生成するためのスター スキーマを実装する予定です。いくつか疑問があります

  1. 予定が後でキャンセル済みとしてマークされるように、データが変更される可能性があります。スター スキーマのデータを変更することはお勧めできません。そうでない場合、より良いアプローチは何ですか。
  2. ファクト テーブルへのデータは、データがメイン データベースに追加されるときにバックグラウンド タスクによって挿入されます。再投稿はほとんどいつでもアプリケーションで表示されるため、ファクト テーブルへのデータの絶え間ない挿入は問題です。
  3. 私はそれを mysql に実装することを計画しています。誰かがこの種の構造を持つ mysql のパフォーマンスに関連する投稿を教えてくれれば、それは素晴らしいことです。また、このスキーマ Innodb または Myisam を実装するのに適したエンジンはどれですか

ありがとう。

4

2 に答える 2

3

特定のデータベーステクノロジに関連付けられていない一般的な用語で答えようとします(私はMS SQL Server DWHの担当者です)。

あなたの特定の質問に対処するために...

「1.予定が後でキャンセル済みとしてマークされるように、データが変更される可能性があります。スタースキーマでデータを変更することはお勧めできません。そうでない場合は、より良いアプローチです。」

DWHesファクトテーブルとディメンションテーブルには、主に2つのテーブルタイプがあります。

スタースキーマでファクトまたはディメンションデータを変更することは完全に有効です。DWHからディメンションレコードを削除することはお勧めできません。

データへのタイプ1(履歴の上書き)またはタイプ2(履歴の保持)の変更(緩やかに変化するディメンション)を選択する必要があります。

ここでファクトレコードを削除することを提案しているかどうかはわかりませんが、各ファクトレコードにフラグを付けて、予定のステータス(予約済み、使用済み、キャンセル済みなど)と、患者がキャンセルしたかどうかを示すことをお勧めします。次に、アポイントメントにより、ファクトレコードがstatus=bookedからstatus=cancelledに変更されます。ファクトレコードを実際に削除するのではありません。このようにして、キャンセルされた予定の数を追跡することもできます。

複雑さを追加するには、ファクトテーブルに履歴を保持して、「as at」の位置を表示できるようにします。つまり、特定の時点でのデータベースの状態を表示できます。これにより、発生する変更の数に応じて、データベースのサイズがかなり大きくなります。

「2.データがメインデータベースに追加されると、ファクトテーブルへのデータはバックグラウンドタスクによって挿入されます。アプリケーションではほとんどいつでも再投稿が行われるため、ファクトテーブルへのデータの継続的な挿入が問題になります。」

更新の頻度/最新のデータを持つことの重要性について話し合う必要があります。一般的に(あなたがそうだと確信しているように)DWHeはOLTPシステムではないため、常に新しいデータで更新され、最新のデータでレポートできるようになっているわけではありません。それが本当に必要な場合は、OLTPシステムが必要です。

そうは言っても、20分ごとに更新を行うDWHを実装しました。これには、OLAPキューブが上にあるSQLDWHがありました。mysqlにOLAPテクノロジがあるかどうかはわかりませんが、オープンソースバージョンが利用できると思います。OLAPにはいくつかの種類があり(MOLAP / ROLAP / HOLAP)、パフォーマンス/データの最新性にさまざまな焦点を当てています。

特にユーザーが多い場合は、通常、DWH自体をレポートDBレイヤーから分離する必要があります。

「3.mysqlに実装することを計画しています。誰かが、この種の構造を持つmysqlのパフォーマンスに関連する投稿を教えてくれるなら、それは素晴らしいことです。また、このスキーマInnodbまたはMyisamを実装するためのより良いエンジンです。」

私はこの質問を伝えなければなりません。以前はinnoDBとMyISAMについて少し知っていましたが、このテクノロジーを試してから約8年になります。

スタースキーマDWHデザインに関する非常に優れた本は、DWHデザインブックのラルフキンボールによるものです。

于 2011-06-01T12:01:48.503 に答える
2

InnoDb をお勧めします。新しいバージョンではパフォーマンスに関連する多くの変更が行われているためです (Google に感謝)。ほとんどの変更は、RC 段階にある 5.5 バージョンで行われます。5.5を試してみることをお勧めします。

http://dev.mysql.com/tech-resources/articles/introduction-to-mysql-55.html

http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html

これは、Star Schema の実装に関連するホワイト ペーパーです。お役に立てば幸いです。

http://www.ciobriefings.com/Publications/WhitePapers/DesigningtheStarSchemaDatabase/tabid/101/Default.aspx

于 2010-11-02T12:35:25.630 に答える