代码之家  ›  专栏  ›  技术社区  ›  Pedro Arantes

AWS kinisis Analytics不接收实时分析数据

  •  0
  • Pedro Arantes  · 技术社区  · 6 年前

    我正在尝试实现AWS动态分析,但没有成功。我已经成功地实现了kinesstream,Kinesis分析模式。当我打开实时分析(SQL编辑器)时,我在“源数据”选项卡上看到了这个:

    enter image description here

    enter image description here

    这是我的SQL查询:

    -- ** Continuous Filter ** 
    -- Performs a continuous filter based on a WHERE condition.
    --          .----------.   .----------.   .----------.              
    --          |  SOURCE  |   |  INSERT  |   |  DESTIN. |              
    -- Source-->|  STREAM  |-->| & SELECT |-->|  STREAM  |-->Destination
    --          |          |   |  (PUMP)  |   |          |              
    --          '----------'   '----------'   '----------'               
    -- STREAM (in-application): a continuously updated entity that you can SELECT from and INSERT into like a TABLE
    -- PUMP: an entity used to continuously 'SELECT ... FROM' a source STREAM, and INSERT SQL results into an output STREAM
    -- Create output stream, which can be used to send to a destination
    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (LASTNAME VARCHAR(8), AGE REAL);
    -- Create pump to insert into output 
    CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
    -- Select all columns from source stream
    SELECT STREAM LASTNAME, AGE
    FROM "SOURCE_SQL_STREAM_001"
    -- LIKE compares a string to a string pattern (_ matches all char, % matches substring)
    -- SIMILAR TO compares string to a regex, may use ESCAPE
    -- WHERE sector SIMILAR TO '%TECH%';
    

    为什么不 DESTINATION_SQL_STREAM 收到数据了吗?

    注意:我每1秒通过命令发送相同的数据: while sleep 1; do aws kinesis put-record --stream-name Foo --partition-key 123 --data "{\"LASTNAME\": \"Hil3pet\", \"AGE\": 26}"; done

    0 回复  |  直到 6 年前
        1
  •  0
  •   Pedro Arantes    5 年前

    问题是我忘了 ; 在问句的最后。

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (LASTNAME VARCHAR(8), AGE REAL);
    CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
    SELECT STREAM LASTNAME, AGE
    FROM "SOURCE_SQL_STREAM_001"
    

    正确的方法:

    CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (LASTNAME VARCHAR(8), AGE REAL);
    CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM";
    SELECT STREAM LASTNAME, AGE;
    FROM "SOURCE_SQL_STREAM_001";