問題タブ [datahistory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Hibernate:既存のテーブルに似た新しいテーブルをプログラムで作成する方法はありますか?
多くのテーブルを持つ Web アプリがあります (それぞれが POJO を表します)。各クラスのマッピング ファイルを作成し、Hibernate を使用SchemaExport
してデータベースにテーブルを生成しました。ここで、作成された既存のテーブルごとに 2 つの追加テーブルを作成します。
- ユーザー権限テーブル- 各フィールドに固有の POJO に対するユーザー権限を格納します
。各列は POJO のフィールドを表し、各行はユーザーを表し、各セルは「読み取り」、「書き込み」などの値を持ち、ユーザーの権限を表します。分野 - データ履歴テーブル- すべてのデータ履歴をバージョン番号とともに保存します。
このテーブルには、POJO テーブルに含まれるすべての列が含まれ、4 つの追加フィールド (データ オブジェクト バージョン、トランザクション GUID (主キー)、データスタンプ、およびこのトランザクションを実行したユーザー) が含まれます。
これらのテーブルが作成された後、Hibernate を介してこれらのテーブルにアクセスできるようにしたいと考えています。エントリを簡単に追加/削除/更新できるようにします。
私の質問
追加のテーブルのほとんどの列は、POJO テーブルと同じです。したがって、新しいテーブルを作成するのではなく、何らかの方法で POJO テーブルを参照する方がよいのではないかと思います。このようにして、POJO テーブルに新しいフィールドが追加された場合、これらのテーブルは自動的に変更されます。しかし、私はこれを行う方法を知らないようです。私はおそらくいくつかの方法があると思いました:
- POJO テーブルを参照する hibernate マッピング ファイルを何らかの方法で作成します。
たとえば、新しい POJOPermission.hbm.xml ファイルで、 POJO テーブルと同じフィールドを指定し、これらの新しいフィールドを追加します。 - Hibernate でテーブルを作成する Java コードを記述します。
たとえば、java.lang.Class を使用して POJO 内のすべてのフィールドのリストを返し、これらを繰り返し処理し、これらを新しいテーブルの列ヘッダーとして設定し、何らかの方法で呼び出すことができます。実行時にこれらのテーブルを作成するための休止状態
上記のいずれかを行う方法、またはこの問題を回避する方法を教えてください。この考え方は間違っているのではないかと思うのですが……。
ありがとうございました!!!
[編集 - 解決策]
最終的に XSLT を使用して、元の hbm.xml ファイルを新しいファイルに変換し、フィールド タイプなどを変更しました。また、hibernate.cfg.xml ファイルを指定して、新しく生成されたファイルを含めます。最後に、schemaexport を実行して、すべての Java ファイルをまとめて生成します...
sql - 履歴ファクト テーブルを作成するには?
データ ウェアハウスにいくつかのエンティティがあります。
Person - personId、dateFrom、dateTo などの属性を使用して、姓、生年月日などを変更できます - 徐々に変化するディメンション
ドキュメント- documentId、番号、タイプ
住所- addressId、city、street、house、flat
(Person と Document) の関係は 1 対多、(Person と Address) の関係は多対多です。
私の目標は、次の質問に答えることができる履歴ファクト テーブルを作成することです。
- 定義された日付に定義された住所に住んでいたのは、どの文書を持ったどの人物ですか?
2, 定義された住所には、定義された時間間隔でどのような居住者の履歴がありますか?
これはDWが設計したものだけではなく、DWの設計で最も難しいことだと思います。
たとえば、personId=1 の Miss Brown と documentId=1 および documentId=2 のドキュメントは、2005 年 1 月 1 日から 2010 年 2 月 2 日まで addressId=1 のアドレスに存在し、その後 addressId=2 に移動しました。 2010 年 2 月 3 日から現在の日付まで住んでいます (NULL?)。しかし、彼女は 2006 年 4 月 5 日から姓を Mrs Green に変更し、2007 年 6 月 7 日から documentId=1 の最初のドキュメントを documentId=3 に変更しました。personId=2、documentId=4 の Mr Black は、2010 年 2 月 3 日から現在の日付まで addressId=1 に住んでいます。
addressId=1 で、時間間隔が 2000 年 1 月 1 日から現在までである質問 2 のクエリで期待される結果は、次のようになります。
行:
複合キー (personId、documentId、addressId、dateFrom) を使用してファクト テーブルを作成するというアイデアがありましたが、このテーブルをロードして、この構造で期待される結果を得る方法がわかりません。
どんな助けでも喜んでします!
javascript - date_histogram、elasticsearch のバケット平均を取得する
データを取得する次のクエリがあり、過去 1 時間ごとの集計を作成します。
各時間間隔 (集計によって作成された各バケット) からフィールドの平均を取得したいと考えています。 この記事では、私がやりたいことと似たようなことについて話しています: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_looking_at_time.html先週?」)。ただし、この場合に何をすべきかは正確には説明されていません。
誰もそれを行う方法を知っていますか?
java - 大量のデータを表示する
UI に大量のデータを表示する際の一般的なガイドラインは何ですか?
私が思いついたアプローチの 1 つは、最初にいくつかのレコードをロードし、次にユーザー入力に基づいて後続のレコードをロードすることでした。
学習できるリソースはありますか? これは Java で開発されています (バックエンドとクライアントの両方)。