私は、1つのクエリの出力が別のクエリの入力として使用されるように変換される連鎖/パイプラインクエリをサポートするフレームワークをJavaで作成しようとしています。何かのようにPyCascadingこれらのクエリは実行時に行われます。私はいくつかのフレームワークを見て、Apache Camel & Spring Integrationのようになりました。チェーンとルーティング(エンタープライズ統合パターン)のコンセプトを提供しています。 Apache CamelはSpring Integration(IMHO)より優れています。Javaでのパイプライン化されたSQL/NOSQLクエリの作成
私のフレームワーク用にApache Camelを使うべきでしょうか、これを実現する良い方法がありますか?
私のクエリ構文[
これはあなたが解析した結果をインライン化することを可能にするために camel-jdbcといくつかの基本的なキャメルの機能(のような simple)を使用して可能であるQuery query1 = "select customer.id from customer where customer.name = 'ABC'";
Query query2 = "select account.id from account where account.custid in {$1}";
// $1 will be the input of second query
from(query1).inputto(query2).printOutput();
'口座からaccount.id選択し、顧客account.custid =顧客。 idとcustomer.name = 'ABC'''''''''' '' '' '' '' '' '' '' '' 'をもう一度返すだけでデータベースからデータを引き出すのは非効率的です。 –
私はそれが良い方法だと思うが、私のSQLテーブルは分散データベースになるだろうし、SQLやNOSQLかもしれない。したがって、クエリオブジェクトは実行の世話をしています。 – Abhishek
論理的に結合される可能性があるすべてのデータを保持します。可能であれば、無関係のデータを異なるデータベースに入れるだけです。私はあなたに必要なものすべてを与える1つか2つのデータベースしか持たないようにしようとします。 –