Cassandra 在创建的表中查找列的数据类型

Cassandra 在创建的表中查找列的数据类型,cassandra,cql,Cassandra,Cql,我试图为用户验证表结构提供一种服务,其中一个组件是列数据类型,如下面的“CREATE table”语句中的uuid、text和bigint USE my_keyspace; CREATE TABLE users ( id uuid, name text, age bigint); 如果我这样做 USE system; SELECT validator FROM schema_columns WHERE keyspace_name='my_keyspace' AND co

我试图为用户验证表结构提供一种服务,其中一个组件是列数据类型,如下面的“CREATE table”语句中的
uuid
text
bigint

USE my_keyspace;
CREATE TABLE users (
    id uuid,
    name text,
    age bigint);
如果我这样做

USE system;
SELECT validator FROM schema_columns
WHERE keyspace_name='my_keyspace' AND columnfamily_name='users';
我明白了

org.apache.cassandra.db.marshal.UUIDType
org.apache.cassandra.db.marshal.UTF8Type
org.apache.cassandra.db.marshal.LongType
这似乎提供了信息,但仔细检查,多个不同的数据类型可以映射到同一个验证器值。是否有一种方法可以提取在“createtable”语句中输入的数据类型信息,或者至少在类型之间找到一些区别

另外,我很好奇为什么验证器数据前面有“org.apache.cassandra…”字样,并且找不到解释,所以如果有人知道原因,我很想知道

这似乎提供了信息,但仔细检查,多个不同的数据类型可以映射到同一个验证器值

如果是这种情况,例如varchar和text,我相信数据类型相互映射,并且可以互换。如果我错了,还有人纠正我吗

是否有一种方法可以提取在“createtable”语句中输入的数据类型信息,或者至少在类型之间找到一些区别

我知道的唯一方法是:

DESC TABLE users;
另外,我很好奇为什么验证器数据前面有“org.apache.cassandra…”字样,并且找不到解释,所以如果有人知道原因,我很想知道

Cassandra是用Java实现的,这是实现数据类型的类的完整路径

更多信息:

使用以下查询:

select column_name,type from system_schema.columns where keyspace_name ='my_keyspace' AND table_name='users';