0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Modeler 18.6のwatsonx.data関連の修正

Last updated at Posted at 2025-06-30

Modeler 18.6のwatsonx.data関連の修正で気づいたものをまとめました。

1. 文字列型などで最初の一文字目しか表示されない。

文字列型でFord、Dodge、Chevroletのデータが入っていたのですが、以下のように一文字目しか表示されませんでした。

image.png

Simba Presto ODBC drivers 1.4.0で発生していました。Simba Presto ODBC 1.4.1.1000 で解決しています。

2. TIME型の列にINSERTをするとConversion errorで失敗する

TIME型の列にINSERTをすると以下のエラーが発生していました。
[2025-01-23 10:47:30] SQL を実行中: INSERT INTO "spsstest"."timetest" ("TIME") VALUES ( ?)
[2025-01-23 10:47:30] 22003[40470] [Simba][Support] (40470) Conversion error at column 1 and row 1: numeric value out of range.

2025-01-23 13_30_25-TIMEINSERT.png

Known Issue: DT423430

修正ファイル : IF006

3. datetime_now関数の結果が$null$になってしまう

datetime_now関数の結果が$null$になってしまっていました。
image.png

Known Issue: DT423431

修正ファイル : IF003

4. to_date(@TODAY)関数を使用するとPresto Query Errorが発生する

image.png

Known Issue: DT434836
https://www.ibm.com/mysupport/s/ibm-community-support-search-results?q=DT434836&language=en_US

修正ファイル : IF008

5. random関数で返る数値の範囲が想定と異なる

random(2.0)と設定した場合、「0 < ... <= 2.0」が想定される範囲です。

しかしながら、ストリームを実行した際のSQLでは「RAND() * 2.0」のFunctionが使用されていました。

image.png

Prestoのドキュメントを参照するとrand関数はrandom関数と同じであり、random(n)ではnは含まれません。https://prestodb.io/docs/current/functions/math.html#random-double
Returns a pseudo-random number between 0 and n (exclusive)

「0 < ... < 2.0」 となるため、想定した範囲(0 < ... <= 2.0)と異なり2.0を含めることができません。

Known Issue: DT436036

修正ファイル : IF010
「2.0 - (RAND() * 2.0)」が実行されるように修正されました。

6. データ区分ノードの「ランダムシードの設定」

データ区分ノードで「ランダムシードの設定」を行うと、間違った範囲でデータ区分が行われ、また繰り返した時に同じ結果を得られません。
「ランダムシードの設定」にチェックを入れないでください。

以下のように「ランダムシードの設定」にチェックを入れて実行すると、すべてのデータが「2」になってしまいました。

image.png

image.png

これはFLOOR(RAND(1234567) * 100.0)を行っているためです。RANDの引数は、乱数範囲の上限でありランダムシードではないためです。
image.png

SELECT T0.C0 AS C0,T0.C1 AS C1,T0.C2 AS C2,T0.C3 AS C3,T0.C4 AS C4,T0.C5 AS C5,T0.C6 AS C6,T0.C7 AS C7,T0.C8 AS C8,(CASE WHEN (T0.C9 < 50) THEN '1_学習' ELSE '2_テスト' END) AS C9 FROM (SELECT T0."car" AS C0,T0."mpg" AS C1,T0."cylinders" AS C2,T0."displacement" AS C3,T0."horsepower" AS C4,T0."weight" AS C5,T0."acceleration" AS C6,T0."model" AS C7,T0."origin" AS C8,FLOOR(RAND(1234567) * 100.0) AS C9 FROM "spsstest"."cars" T0) T0

ランダムシードによって結果を固定することができませんので、同じデータ区分結果を得たい場合には、データ区分ノードのキャッシュを有効化にしたり、一旦別のテーブルに出力して結果を保存してください。

7. データベース・キャッシング用のテーブルの作成に失敗

キャッシュを行った場合にデータベースキャッシングが行われず、メッセージに以下のWarningが出ていることがありました。
「データベース内キャッシング用のテーブルの作成に失敗しました。 代わりにファイル キャッシュを使用。」
image.png

これは、テーブルの作成権限がない場合に発生することがあります。その場合は、watsonx.dataのアクセス制御ポリシー設定でテーブルの作成権限を与えてください。
image.png

4. fix

フィックスが必要な場合は、IBM Supportにフィックスを要求してください。

watsonx.dataのアクセス制御ポリシー設定

  • テスト環境
    • Windows 11 64bit
    • SPSS Modeler Client 18.6
    • Simba Presto ODBC drivers 1.4.1.1000
    • watsonx.data SaaS Enterprise (Version : 2.1.0.0.2/Console Build : wxd-v2.1.0-2.1.0-20250123142017b2952)
    • Presto (Java) v0.286
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?