前边写过使用scylladb 做为jaeger 的后端存储,还是一个不错选择的包括性能以及 兼容性,对于
yugabyte 当前存在兼容性的问题,需要版本的支持,或者尝试进行一些变动
create 语法的处理
- 逗号
CREATE TYPE IF NOT EXISTS ${keyspace}.keyvalue (
key text,
value_type text,
value_string text,
value_bool boolean,
value_long bigint,
value_double double,
value_binary blob,
);
需要删除末级的逗号
- type 的问题
type 这个对于当前的语法存在支持兼容性的问题
错误信息如下:
CREATE TYPE IF NOT EXISTS ${keyspace}.log (
ts bigint,
fields list<frozen<keyvalue>>
); ... ... ...
InvalidRequest: Error from server: code=2200 [Invalid query] message="Invalid Type Definition. UDT field types cannot be (un-frozen) collections
CREATE TYPE IF NOT EXISTS ${keyspace}.log (
ts bigint,
^^^^
fields list<frozen<keyvalue>>
^^^^^^
);
(error -312)"
尝试的调整以及错误:
CREATE TYPE IF NOT EXISTS ${keyspace}.log (
ts bigint,
fields frozen<list<frozen<keyvalue>>>
);
... ... ... SyntaxException: Feature Not Supported. UDT field types cannot refer to other user-defined types
CREATE TYPE IF NOT EXISTS ${keyspace}.log (
ts bigint,
^^^^
fields frozen<list<frozen<keyvalue>>>
^^^^^^
);
(error -14)
说明
目前尝试是失败的,但是后边还是可以再尝试,需要先看看jaeger 的存储处理,进行schema 的一些调整,当前官方也在计划
对于上边错误的实现,很期待可用。
参考资料
https://github.com/YugaByte/yugabyte-db/issues/1630
https://www.cnblogs.com/rongfengliang/p/11207556.html