AWS Kinesis Data Analytics SQL错误消息:java.lang.AssertionError:类型不匹配:type1:DECIMAL(18,6)type2:7:DOUBLE

时间:2019-07-02 21:05:21

标签: amazon-kinesis

我无法弄清楚为什么我使用AWS Kinesis Data Analytics遇到此错误。

SQL错误消息:java.lang.AssertionError:类型不匹配:type1:DECIMAL(18,6)type2:7:DOUBLE

我正在尝试在STAGGERED窗口上进行一些汇总。但是,数据类型之间似乎有些脱节。

这是我的SQL:

CREATE OR REPLACE STREAM "FARM_SPECIFIC_YIELD_AGGREGATION"
  (UTC_TIME BIGINT,
  ASSET_ID BIGINT,
  FARM_ID BIGINT,
  SIGNAL_NAME VARCHAR(60),
  SIGNAL_VALUE  DECIMAL(18, 6),
  ASSET_TYPE VARCHAR(32),
  IN_OPERATIONAL_WINDOW BOOLEAN NOT NULL, -- boolean flag indicating whether the event time falls between sunrise and sunset for the associated farm
  IS_AGGREGATE BOOLEAN NOT NULL);

CREATE OR REPLACE PUMP "FARM_SPECIFIC_YIELD_PUMP" AS INSERT INTO "FARM_SPECIFIC_YIELD_AGGREGATION"
SELECT STREAM
  SRC.UTC_TIME AS UTC_TIME,
  SRC.FARM_ID AS ASSET_ID,
  SRC.FARM_ID AS FARM_ID,
  CASE SRC.SIGNAL_NAME 
  WHEN 'generation.na.dtn' THEN 'specific_yield-avg.farm.10m'
  ELSE NULL
  END AS SIGNAL_NAME,
  SUM(SRC.SIGNAL_VALUE) / SUM(FM.CAPACITY) AS SIGNAL_VALUE,
  SRC.ASSET_TYPE AS ASSET_TYPE,
  SRC.IN_OPERATIONAL_WINDOW AS IN_OPERATIONAL_WINDOW,
  FALSE AS IS_AGGREGATE
  FROM "SOURCE_SQL_STREAM_001" AS SRC
  JOIN FARM_METADATA AS FM
  ON SRC.ASSET_ID = FM.ASSET_ID
  WHERE (SRC.SIGNAL_VALUE IS NOT NULL AND SRC.SIGNAL_VALUE > 0 AND SRC.SIGNAL_VALUE <= FM.CAPACITY)
  AND SRC.SIGNAL_NAME IN ('generation.na.dtn')
  WINDOWED BY STAGGER (
  PARTITION BY SRC.UTC_TIME, SRC.FARM_ID, SRC.SIGNAL_NAME, SRC.ASSET_TYPE, SRC.IN_OPERATIONAL_WINDOW
  RANGE INTERVAL '10' MINUTE);

我尝试强制转换值,但无法正常工作。也许SUM()聚合可能是一个问题。

如果我强制转换值,则会出现以下错误: SQL错误消息:java.lang.AssertionError:RexInputRef索引8超出范围0..7

这些是数据类型。 SIGNAL_VALUE为DECIMAL(18,6) FM.CAPACITY是双重的

任何帮助将不胜感激。我认为AWS KDA在堆栈溢出方面还没有很大的规模。

0 个答案:

没有答案