「select count(x)、y by y group」のようなクエリを実行すると、calciteはメモリ内のすべての計算を行います。だから十分なデータを持っているので、mem-of-memを実行することができます。他のストレージを使って集約を行う方法はありますか?スパークオプションがありますが、有効にするとnullptr例外が発生します。それは結果を計算するためにスパークを使用することを意味し、どのように動作しますか?方解石のメモリ内での集計を避ける方法
2
A
答えて
0
私はこれについて私の理解について少し話したいと思います。
第1に、カルサイトはSQL最適化を専門とするデータ操作エンジンです。そのため、主に最適な実行計画を見つけることに重点を置いています。
calcite
にかなりのアダプタがあります。もちろん、集約をバックエンドにプッシュダウンして実行することもできます。集約をバックエンドにプッシュダウンするようにmysql
など...
の場合はcsv adapter
の場合、集計を実行するためにカルテットが実行詳細を生成すると思います。おそらくメモリにすべてを示唆したように、csvファイルが十分に大きければ、OOMが存在します。
はい、SPARKオプションがオンになっています。物理計画を実行するコードjava
の代わりに方解石がSPAKR
コードを生成できるようになります。私はあなたが言及したOOMをある程度解決すると思います。
残念ながら、いくつかのテスト仕様以外にcalcite
を実行するためにSPARKを使用する公式の紹介は見つかりませんでした。
CalciteAssert.that()
.with(CalciteAssert.Config.SPARK)
.query("select *\n"
+ "from (values (1, 'a'), (2, 'b'))")
.returns("EXPR$0=1; EXPR$1=a\n"
+ "EXPR$0=2; EXPR$1=b\n")
.explainContains("SparkToEnumerableConverter\n"
+ " SparkValues(tuples=[[{ 1, 'a' }, { 2, 'b' }]])");
関連する問題
- 1. テーブル内のメジャー値の集計を回避する方法
- 2. DataMapper集計でN + 1を避ける方法
- 3. 避ける方法Avroスキーマ内のマップマップマップ
- 4. ルールエンジン - ルールを保存して編集時の解析を避ける方法は?
- 5. メモリを浪費するのを避ける方法
- 6. ヘロクでの宝石の編集方法
- 7. JSON.parse()メソッドで "\"の解析を避ける方法
- 8. ハンドルバーヘルパー内での..ルックアップの使用を避ける方法
- 9. メモリ内のWebページを解析する方法ここで
- 10. ASP.NET:ページの一部の解析を避ける方法
- 11. Jenkinsfile内のgitコマンドでJenkinsトリガーを避ける方法
- 12. NSCachedImageRepを避ける方法
- 13. 宝石内のメモリ内データベースを使用
- 14. pandasデータフレーム内のchange-in-stateカラムで集計する方法
- 15. 潜在的に高価な計算プロパティの再計算を避ける方法
- 16. ループ内のメモリを「解放する」方法は?
- 17. Spring Mongo>集計から集計オペレーションを集める方法
- 18. elasticsearchクエリから1つのフィルタを避けてすべての集計を取得する方法
- 19. 避ける方法.IllegalStateException
- 20. 避ける方法#ifdef __x86_64__
- 21. 避ける方法Uncaught ReferenceError
- 22. 避ける方法? .htaccessファイル
- 23. ツリー内で集計関数(aggFuncs)を作成する方法は?
- 24. androidのcreateBitmap()クラッシュを避ける方法
- 25. 入力のラベルを避ける方法
- 26. メインテーブルのスキャンを避ける方法
- 27. ウェブURLのコードインジェクションを避ける方法
- 28. XMLスキーマのcomplexTypesを避ける方法
- 29. テラデータの結合を避ける方法
- 30. ローマの例外を避ける方法