簡體   English   中英

AWS Kinesis SQL 的問題 - 隨機森林砍伐算法

[英]Issue with AWS Kinesis SQL - Random Cut Forest algorithm

我在 AWS Kinesis 應用程序中有此代碼:

CREATE OR REPLACE STREAM "OUT_FILE" (
        "fechaTS"              timestamp,
        "celda"                varchar(25),
        "Field1"               DOUBLE,
        "Field2"               DOUBLE,
        "ANOMALY_SCORE"        DOUBLE,
        "ANOMALY_EXPLANATION"  varchar(1024)
        );

CREATE OR REPLACE PUMP "PMP_OUT" AS
   INSERT INTO "OUT_FILE"
      SELECT STREAM 
        "fechaTS",
        "celda",
        "Field1",
        "Field2",
        "ANOMALY_SCORE",
        "ANOMALY_EXPLANATION"
      FROM TABLE(RANDOM_CUT_FOREST_WITH_EXPLANATION(
                 CURSOR(SELECT STREAM * FROM "SOURCE_SQL_STREAM_001"), 300, 512, 8064, 4, true))
  WHERE "celda" = 'CELLNUMBER' 
         ;

我只是期望每個輸入記錄的異常分數計算的通常輸出。

相反,我收到此錯誤消息:

Number of numeric attributes should be less than or equal to 30 (Please check the documentation to know the supported numeric SQL types)

我提供給模型的數字屬性的數量只有 2。另一方面,支持的 SQL 數字類型是這些,根據文檔:DOUBLE、INTEGER、FLOAT、TINYINT、SMALLINT、REAL 和 BIGINT。 (我也嘗試過 FLOAT)。

我究竟做錯了什么?

解決方案是在輸入模式級別將變量定義為 DOUBLE(或其他可接受的類型):在 SQL 中將它們定義為 DOUBLE 是不夠的。

我嘗試了這樣的 JSON 並工作:

{"ApplicationName": "<myAppName>",
 "Inputs": [{
   "InputSchema": {
            "RecordColumns": [{"Mapping": "fechaTS", "Name": "fechaTS", "SqlType": "timestamp"},
                              {"Mapping": "celda","Name": "celda","SqlType": "varchar(25)"},
                              {"Mapping": "Field1","Name": "Field1","SqlType": "DOUBLE"},
                              {"Mapping": "Field2","Name": "Field2","SqlType": "DOUBLE"},
                              {"Mapping": "Field3","Name": "Field3","SqlType": "DOUBLE"}],
            "RecordFormat": {"MappingParameters": {"JSONMappingParameters": {"RecordRowPath": "$"}},
                             "RecordFormatType": "JSON"}
            },
    "KinesisStreamsInput": {"ResourceARN": "<myInputARN>", "RoleARN": "<myRoleARN>"},
    "NamePrefix": "<myNamePrefix>"
    }]
  }

附加信息:如果您將此 JSON 保存在 myJson.json 中,則發出以下命令:

aws kinesisanalytics create-application --cli-input-json file://myJson.json

必須事先安裝和配置 AWS 命令​​行界面 (CLI)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM