Skip to content

sql模式下写入redis 报参数异常 IllegalArgumentException #710

@libailin

Description

@libailin

当在LocalTest里运行 stream_redis.sql 时报错

stream_redis.sql配置就是master分支下自带配置:

CREATE TABLE source
(
    id          INT
    , name      STRING
    , money     decimal
    , dateone   timestamp
    , age       bigint
    , datethree timestamp
    , datesix   timestamp(6)
    , datenigth timestamp(9)
    , dtdate    date
    , dttime    time

    , afloat    float
    , adouble   double
    , aboolean  BOOLEAN
    , abigint   BIGINT
    , atinyint  TINYINT
    , avarchar  varchar
    , asmallint SMALLINT
) WITH (
      'connector' = 'stream-x'
      ,'number-of-rows' = '10'
      );

CREATE TABLE sink
(
    id          INT
    , name      STRING
    , money     decimal
    , dateone   timestamp
    , age       bigint
    , datethree timestamp
    , datesix   timestamp(6)
    , datenigth timestamp(9)
    , dtdate    date
    , dttime    time

    , afloat    float
    , adouble   double
    , aboolean  BOOLEAN
    , abigint   BIGINT
    , atinyint  TINYINT
    , avarchar  varchar
    , asmallint SMALLINT
    , primary key (id) NOT ENFORCED -- redis必须要填写,存入redis的结构是hash结构,key=tableName_primaryKey1_primaryKey2
) WITH (
      'connector' = 'redis-x' --必填
      ,'url' = 'localhost:6379' --必填,格式ip:port[,ip:port]
      ,'table-name' = 'cx' --必填
      ,'password' = '123456' -- 密码 无默认,非必填项
      ,'redis-type' = '1' -- redis模式(1 单机,2 哨兵, 3 集群),默认:1
      ,'master-name' = 'lala' -- 主节点名称(哨兵模式下为必填项)
      ,'database' = '0' -- redis 的数据库地址,默认:0
      ,'timeout' = '10000' -- 连接超时时间,默认:10000毫秒
      ,'max.total' = '5' -- 最大连接数 ,默认:8
      ,'max.idle' = '5' -- 最大空闲连接数,默认:8
      ,'min.idle' = '0' -- 最小空闲连接数 ,默认:0
      -- ,'keyExpiredTime' = '1000' -- redis sink的key的过期时间。默认是0(永不过期),单位是s。默认:0
      ,'sink.parallelism' = '3' -- sink并行度
      );


INSERT INTO sink
SELECT id
     , max(name)      as name
     , max(money)     as money
     , max(dateone)   as dateone
     , max(age)       as age
     , max(datethree) as datethree
     , max(datesix)   as datesix
     , max(datenigth) as datenigth
     , max(dtdate)    as dtdate
     , max(dttime)    as dttime

     , max(afloat)    as afloat
     , max(adouble)   as adouble
     , max(aboolean)  as aboolean
     , max(abigint)   as abigint
     , max(atinyint)  as atinyint
     , max(avarchar)  as avarchar
     , max(asmallint) as asmallint
from source
group by id;

Expected behavior

Exception in thread "main" java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:64)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.dtstack.flinkx.local.test.LocalTest.main(LocalTest.java:184)
	... 5 more
Caused by: com.dtstack.flinkx.throwable.FlinkxRuntimeException: java.lang.IllegalArgumentException: 
No type supplied
No mode supplied

	at com.dtstack.flinkx.Main.exeSqlJob(Main.java:149)
	at com.dtstack.flinkx.Main.main(Main.java:108)
	... 10 more
Caused by: java.lang.IllegalArgumentException: 
No type supplied
No mode supplied

	at com.dtstack.flinkx.connector.redis.sink.RedisOutputFormatBuilder.checkFormat(RedisOutputFormatBuilder.java:81)
	at com.dtstack.flinkx.sink.format.BaseRichOutputFormatBuilder.finish(BaseRichOutputFormatBuilder.java:56)
	at com.dtstack.flinkx.connector.redis.sink.RedisDynamicTableSink.getSinkRuntimeProvider(RedisDynamicTableSink.java:68)
	at org.apache.flink.table.planner.plan.nodes.common.CommonPhysicalSink.createSinkTransformation(CommonPhysicalSink.scala:78)
	at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlanInternal(StreamExecSink.scala:109)
	at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlanInternal(StreamExecSink.scala:43)
	at org.apache.flink.table.planner.plan.nodes.exec.ExecNode.translateToPlan(ExecNode.scala:59)
	at org.apache.flink.table.planner.plan.nodes.exec.ExecNode.translateToPlan$(ExecNode.scala:57)
	at org.apache.flink.table.planner.plan.nodes.physical.stream.StreamExecSink.translateToPlan(StreamExecSink.scala:43)
	at org.apache.flink.table.planner.delegation.StreamPlanner.$anonfun$translateToPlan$1(StreamPlanner.scala:66)
	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
	at scala.collection.Iterator.foreach(Iterator.scala:937)
	at scala.collection.Iterator.foreach$(Iterator.scala:937)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
	at scala.collection.IterableLike.foreach(IterableLike.scala:70)
	at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
	at scala.collection.TraversableLike.map(TraversableLike.scala:233)
	at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
	at scala.collection.AbstractTraversable.map(Traversable.scala:104)
	at org.apache.flink.table.planner.delegation.StreamPlanner.translateToPlan(StreamPlanner.scala:65)
	at org.apache.flink.table.planner.delegation.PlannerBase.translate(PlannerBase.scala:162)
	at org.apache.flink.table.api.internal.TableEnvironmentImpl.translate(TableEnvironmentImpl.java:1329)
	at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:676)
	at org.apache.flink.table.api.internal.StatementSetImpl.execute(StatementSetImpl.java:98)
	at com.dtstack.flinkx.Main.exeSqlJob(Main.java:141)
	... 11 more


master最新代码
f93e1b8

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions