板条箱数据库异常,输入'VARCHAR'没有可行的替代方案



我使用弹性搜索来存储大量数据,使其可搜索,但对于配置项,我仍然使用HSQL DB。

是否有可能完全消除HSQL DB,并使用我现有的弹性搜索与Crate DB相结合?

我尝试过的事情:

  1. 尝试使用Crate驱动程序和Crate客户端连接到我现有的弹性搜索,但我得到了一个异常No handler found for action "crate_sql"。这是否意味着我不能使用我现有的ES,必须在createdb中使用内置ES ??

  2. 连接到createdb弹性搜索后(而不是我现有的ES)。我能够使用CrateDriver获得连接并运行SQL查询。但是在其中一个模块中,我正在使用下面的命令创建表:

    create table some_table_name(id VARCHAR (256),用户名VARCHAR (256),字段名称VARCHAR(256),

    主键(id)唯一的(userName, fieldName));

…但是我得到了一个异常:

io.crate.action.sql。SQLActionException: line 1:28: no viable alternative at input 'VARCHAR'

这是否意味着我不能使用SQL语法和SQL数据类型编写创建表查询?

我知道它会工作,如果我使用字符串数据类型而不是varchar,但我不想改变所有这些查询现在。

1)

不可以将现有ES节点与Crate一起使用。整个SQL分析器/规划器/执行层是在服务器端完成的,而不是客户端。事实上,crate客户端是相当愚蠢的。

2)

你将不得不改变类型,还删除/更改任何不支持的crate。例如,不支持默认值或唯一约束(最高0.39 -将来可能会添加支持)

在您的情况下,varchar类型在Crate中无效,您将不得不使用"string"。

请参阅数据类型文档获取支持的数据类型列表。

相关内容

  • 没有找到相关文章

最新更新