問題タブ [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.

0 投票する
3 に答える
2683 参照

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 ファイルをまとめて生成します...

0 投票する
1 に答える
4794 参照

sql - 履歴ファクト テーブルを作成するには?

データ ウェアハウスにいくつかのエンティティがあります。

  1. Person - personId、dateFrom、dateTo などの属性を使用して、姓、生年月日などを変更できます - 徐々に変化するディメンション

  2. ドキュメント- documentId、番号、タイプ

  3. 住所- addressId、city、street、house、flat

(Person と Document) の関係は 1 対多、(Person と Address) の関係は多対多です。

私の目標は、次の質問に答えることができる履歴ファクト テーブルを作成することです。

  1. 定義された日付に定義された住所に住んでいたのは、どの文書を持ったどの人物ですか?

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) を使用してファクト テーブルを作成するというアイデアがありましたが、このテーブルをロードして、この構造で期待される結果を得る方法がわかりません。

どんな助けでも喜んでします!

0 投票する
1 に答える
3447 参照

javascript - date_histogram、elasticsearch のバケット平均を取得する

データを取得する次のクエリがあり、過去 1 時間ごとの集計を作成します。

各時間間隔 (集計によって作成された各バケット) からフィールドの平均を取得したいと考えています。 この記事では、私がやりたいことと似たようなことについて話しています: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_looking_at_time.html先週?」)。ただし、この場合に何をすべきかは正確には説明されていません。

誰もそれを行う方法を知っていますか?

0 投票する
4 に答える
290 参照

java - 大量のデータを表示する

UI に大量のデータを表示する際の一般的なガイドラインは何ですか?

私が思いついたアプローチの 1 つは、最初にいくつかのレコードをロードし、次にユーザー入力に基づいて後続のレコードをロードすることでした。

学習できるリソースはありますか? これは Java で開発されています (バックエンドとクライアントの両方)。