用户福利
阿里云最新发布业界首款云原生多模数据库Lindorm,帮助企业一站式存储处理海量数据,降低80%成本,技术交流钉钉群:35977898,更多内容请参考链接
前言
Cassandra CQL 是Apache Cassandra社区为了用户可以更方便的使用Cassandra而实现的一套类SQL语言,支持java、c++、python、php、nodejs、c#、go、ruby等十几种语言访问Cassandra,CQL语言提供了丰富的数据类型(22基本数据类型以及复杂的集合数据类型)以及常见的DDL/DML/ACL操作语言,参考Cassandra CQL。除此之外还提供了相对丰富的索引、JSON、TLL等功能,广受用户喜爱。
云原生多模数据库Lindorm兼容了Cassandra CQL,所有常见的Cassandra CQL操作都可以通过CQL访问操作Lindorm,所有的Cassandra CQL执行语义也适用Lindorm兼容的Cassandra,用户可以使用Cassandra社区支持的多语言driver直接访问Lindorm。本文作为新手指导手册将介绍如何使用CQL一步步玩转Lindorm。
环境准备以及实例
Lindorm环境
购买集群
用户在Lindorm购买页面根据需要确定好"商品类型","地域和可用区","VPC","专有网络交换机"以及取完一个集群名称;在"存储类型"确定是选择存储方案;完成以后在数据引擎层面需要选择"宽表引擎"相关选项,因为短期内CQL主要是在宽表引擎这个引擎下面暴露(当然不久的将来,其他2个引擎也会通过CQL释放对应能力)。具体细节可以参考Lindorm创建实列。
用户可以参考如何选择存储规格选择使用的节点数量以及存储属性(是否选择冷存储)。
完成购买以后会在控制台看到这个集群的基本情况介绍,包括集群引擎、节点数等等;
基础环境设置
用户在"访问控制"模块将需要访问集群的ip地址,比如用户客户端的ecs地址,添加到集群白名单,否则用户无法正常访问lindorm。详细细节参考设置白名单
获取CQL访问地址
通过上图可以看到"数据库连接"选项下面,默认都存在"CQL连接",默认的链接地址是包括了VPC环境下的地址和端口,也可以执行公网开放功能获取公网地址和端口。
Lindorm使用CQL访问都是走认证的,默认用户名和默认密码在用户控制台可以看到,通过该地方获取的用户名和密码可以访问走CQL访问Lindorm。
CQL 客户端环境以及例子
各种语言的用户可以使用Apache 社区推荐的 cassandra多语言driver访问Lindorm,推荐使用datastax公司主导的一系列多语言driver。本文会列出常见的java/c++/python/php的使用方式以及简单例子,其他的多语言客户端可以参考上述链接自行查询。
在执行这个操作之前用户需要使用到上一步"Lindorm环境"操作生成的如下几个信息:
• CQL链接,以hostname:port 形式暴露;
• 默认用户名;
• 默认密码;
此外,因为Lindorm 兼容Cassandra做到了完全兼容cql binary protocol ,所以用户对cassandra client driver进行的参数调优,以达到提高访问服务端的性能或者稳定性的目的同样适用于通过CQL访问Lindorm。
cqlsh访问Lindorm
cqlsh是Cassandra社区为更好的操作数据库而提供的命令行操作工具,可以参考下载以及使用cqlsh,简单的安装好cqlsh,然后如下命令直接访问到Lindorm:
./cqlsh $host $port -u $username -p $password
其中host是CQL链接 冒号(:)前面的hostname部分,port 是冒号(:) 后面的9042部分,port 不填的话,默认是9042. username在初始化的时候是lindorm的默认用户名,password是 lindorm的默认密码。如果cqlsh 是常用命令的话,用户可以加到bash路径下进行操作即可。
一般情况下DBA可以通过cqlsh进行常见的lindorm DDL、ACL授权操作,比如CREATE KEYSPACE/CREATE TABLE/DROP KEYSPACE/DROP TABLE/CREATE ROLE/GRANT/REVOKE。
也可以使用cqlsh执行常见的DML操作:比如SELECT/INSERT/UPDATE/DELETE,但是建议用于CQL语句的测试。生产的操作参考下面多语言的use case。
JAVA访问Lindorm& use case
如果是java maven用户,参考CQL java driver安装的链接,在自己的项目中添加如下依赖。当然也可以依赖其他更高版本的driver:
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.7.2</version>
</dependency>
完成如下依赖以后,对应的可以在自己的代码里面执行常见的DDL&DML操作,后面所有的例子都会按照:建keyspace、建table、写数据、读数据的顺序进行操作。
具体的操作例子可以参考:使用java driver 通过CQL访问Lindorm
C++/python多语言访问Lindorm& use case
对于c++、python多语言用户可以参考c++、python、php driver访问lindorm进行client driver的设置以及访问代码的参考,也可以参考datastax的各个版本的driver进行设置
其他多语言访问Lindorm
其他多语言用户比如:c#、go、nodejs,spark-connector等用户可以参考多语言driver,具体语言进行具体的参考,或者咨询lindorm客户以及值班人员进行对接。
spring-data 框架用户访问Lindorm
参考spring-data项目链接进行依赖环境设置以及基本例子参考