私は最近、方解石(1.8.0)を学習し、私は、ユースケースを以下している起動します。私はAggCall
秒に「SUM(x)/SUM(y) as myRatio
」、「MAX(z) as maxZ
」または「CASE WHEN …
」のような文字列のリストを変換し、それを使用する必要がSqlNode式(クエリではない)をRelNodeに変換するにはどうすればよいですか?
。私は次の操作を行う必要があるようRelBuilder
後で
はそう思わ:文字列に変換 - > SQLノード - >相対ノードを私はSqlParser.parseExpression
を使用してSqlNodeに文字列を変換し、RelNodeにSqlNodeが、運を変換するPlanner.rel(sqlNode)
を試してみました。またSqlToRelConverter
を作成しようとしました。 JdbcSchemaだけで作成されたconfigから、バリデーター、カタログ・リーダー、およびクラスターを作成する方法を見つけることができません。
ありがとうございます!だから、 'SUM(x)/ SUM(y)をmyRatio'から' RelNode'に変換することはできますが、もう一つの式を追加するにはどうすればいいですか?例えば、SUM(x)をXとする。私は、 'RelNode'から' SUM(x)/ SUM(y)をmyRatio'パーツとして抽出し、それをビルダーに加え、 'SUM(x)as X'に対して同じことをすることを期待しています。それが可能かどうか分かりません... –
あなたは、SELECT SUM(x)/ SUM(y)をmyRatio、SUM(x)AS x、SUM(y)AS y FROM(VALUES(0、0))AS t (x、y) 'と同じ方法です。 合計を計算するためには 'Aggregate'、myRatioとして$ 0/$ 1、xとして$ 0、yとして$ 1を計算する' Project'になります。 'RelBuilder'を使用している場合、' RelBuilder.aggregate() 'を呼び出して' SUM(x) 'と' SUM(y) 'を作成し、プロジェクトに' RelBuilder.project() 'を呼び出すことができます'$ 0/$ 1はmyRatio、$ 0はx、$ 1はy'です。 –