heterodb/pg-strom

[idea] pg2arrowの最適クエリ生成機能

Opened this issue · 1 comments

pg2arrowでArrowファイルを生成する時に、数値型の最大/最小値を調べて、適切なクライアントSQLを生成する。

背景:numericの対応がDecimal(128bit)だけど、場合によってはデカすぎる。

この機能を実装される場合には、「常に適切な(=最小の)サイズを採用する」のではなく、PostgreSQL上でのデータ型に応じて今まで通りに固定で型が決まるなど、オプション等で制御可能になっていると助かります。

シナリオとしては、arrow_fdwを "DIR" で使用しており、デイリーでディレクトリ内に新たな1日分のArrowファイルを追加する運用を行っている場合:

  • たまたま1日目は列に 1~15 の数字しかなかったので、この数値に応じた「適切な」小さい型でArrowが作られる
  • 2日目には 70000 みたいな数字が来ると、1日目とは違う型でArrowが作られる

この2つのArrowファイルは定義が異なるので、”DIR" での使用時にエラーになるのでは? と危惧しています。