Nik*_*lin 18 scala cassandra apache-spark spark-cassandra-connector
cassandra数据库中有许多表,其中包含标题为user_id的列.值user_id被引用到存储在表用户中的用户.由于某些用户被删除,我想删除包含标题为user_id的列的所有表中的孤立记录.
有没有办法使用CassandraSQLContext或任何其他内置方法或自定义过程列出所有表,以避免显式定义表列表?
谢谢.
小智 28
有系统表可以提供有关存储的键空间,表,列的信息.
尝试在cqlsh控制台中运行以下命令:
获取密钥空间信息
SELECT * FROM system.schema_keyspaces ;
获取表格信息
SELECT columnfamily_name FROM system.schema_columnfamilies WHERE keyspace_name = 'keyspace name';
获取表格信息
SELECT column_name, type, validator FROM system.schema_columns WHERE keyspace_name = 'keyspace name' AND columnfamily_name = 'table name';
Sinse v 5.0.x Docs
获取密钥空间信息
SELECT * FROM system.schema_keyspaces;
获取表格信息
SELECT * FROM system_schema.tables WHERE keyspace_name = 'keyspace name';
获取表格信息
SELECT * FROM system_schema.columns
WHERE keyspace_name = 'keyspace_name' AND table_name = 'table_name';
Sinse v 6.0 Docs
获取密钥空间信息
SELECT * FROM system_schema.keyspaces
获取表格信息
SELECT * FROM system_schema.tables WHERE keyspace_name = 'keyspace name';
获取表格信息
SELECT * FROM system_schema.columns
WHERE keyspace_name = 'keyspace_name' AND table_name = 'table_name';
shu*_*mar 22
desc keyspaces; // list all databases/collections names
use anyKeyspace; // select any database
desc tables; // list all tables in collection/ database
Run Code Online (Sandbox Code Playgroud)
您可以使用datastax核心驱动程序和集群元数据实现所需.下面是一个示例,它将列出键空间中的所有表和每个表中的列:
Cluster cluster= Cluster.builder().addContactPoint(clusterIp).build();
Metadata metadata =cluster.getMetadata();
Collection<TableMetadata> tablesMetadata= metadata.getKeyspace("mykeyspacename").getTables();
for(TableMetadata tm:tablesMetadata){
System.out.println("Table name:"+tm.getName());
Collection<ColumnMetadata> columnsMetadata=tm.getColumns();
for(ColumnMetadata cm:columnsMetadata){
String columnName=cm.getName();
System.out.println("Column name:"+columnName);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对于DSE。如果稍后发布,请检查 system_schema 键空间。从
cqlsh > desc keyspaces;
spark_system system_schema "OpsCenter" cfs_archive "HiveMetaStore"
system_auth cfs demobeta dsefs
dse_security hypermedia dse_leases system_traces dse_perf
solr_admin system system_distributed dse_system
Run Code Online (Sandbox Code Playgroud)
如果您看到“system_schema”,则表的元数据位于此键空间中。
cqlsh>use system_schema;
cqlsh>select keyspace_name,table_name from tables where keyspace_name = 'system';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34751 次 |
| 最近记录: |