Dremio を使用して複数のデータ ソースをクエリしています。「2020-01-01 10:04:20」(FORMAT : YYYY-MM-DD hh:mm:ss) などの値を持つ「timestamp」列 dataType を持つ SAPIQ DB があります。問題は、テーブルをクエリするSelect * from TableABC
と、Datetime がタイムスタンプに変換できないという nullpointer 例外が発生することです。ただし、キャスト関数で列を指定すると、以下のクエリが機能します。
SELECT ColumnA, ColumnB, CAST(ColumnTS as VARCHAR), ColumnD FROM TableABC;
SAPIQ のソース DataType は DATETIME であることに注意してください。Dremio はこれを Timestamp に変換しますが、nullpointer をスローし、上記のように Timestamp を VARCHAR に変換した場合にのみクエリが機能します。上記のクエリは、明示的な変換を行っているときに機能します。しかし、私の問題は、Select * from TableABC
NullPointerExceptionなしで結果を取得できるように、反転を暗黙的にしたいということです。
「src/main/resources/arp/implementation/sybase-arp.yaml」で以下を試しましたが、成功しませんでした。以下の構成では、NullPointerException がスローされます。https://github.com/dremioJonny/dremio-sybase-connectorのソース コード
- source:
name: "DATETIME"
max_scale: 8
dremio:
name: "varchar"
default_cast_spec: true
Dremio の専門家からの支援を歓迎します。