先关闭防火墙操作:

firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
 systemctl stop firewalld.service #停止firewall
 systemctl disable firewalld.service #禁止firewall开机启动

首先安装influxdb,安装步骤一步一步下来

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.4.x86_64.rpm
sudo yum localinstall influxdb-1.2.4.x86_64.rpm
如果在这里命令安装不行,请直接进Centos图形界面直接点击安装,点上面链接下载安装包,里面所有小问题操作我都会记载请详细查看,有问题
可以留言给我。

安装完成之后,启动并查看这个服务是否在正常运行:

systemctl start influxdb.service
systemctl status influxdb.service

grafana的sum语句如何分组 grafana 分组统计_grafana的sum语句如何分组

 

启动后打开 web 管理界面 http://#####:8083/ 默认用户名和密码是 root 和 root. InfluxDB 的 Web 管理界面端口是 8083,HTTP API 监听端口是 8086,如果需要更改这些默认设定,修改 InfluxDB 的配置文件(/etc/influxdb/influxdb.conf)并重启就可以了。

 

 

这里如果安装有别的新的版本,会打开web 管理界面 http://#####:8083/ 可能出现页面打不开或者404页面,请进入etc/influxdb目录下的,打开influxdb.conf文件。修改这里打开端口和设置为true,因为新版本已经关闭了,打开这两个,因为后面http进行java代码操作进行公网访问,也会需要打开进行访问

 

这里如果Centos7出现文件只读现象,不可以修改,请用该命令进行调整读写权限:chmod 777 -R  /文件路径/

—R可以授权文件夹下面的所有文件,给父文件权限就行

 

另外Centos7在dos界面使用 ctrl+alt+F1切换到图形界面  ,在图形界面使用 ctrl+alt+F2切换到dos界面  

 

grafana的sum语句如何分组 grafana 分组统计_centos_02

如果这里打开后,可以进行访问后台界面了,后台界面ip查看

Centos输入命令:ifconfig -a

第一个ip就是你们的ip地址,配上端口号8083就可以访问,如果centos装在虚拟机,就在centos里面访问可以直接localhost:8083访问,如果在别的系统,内网区域里面可以用刚才查看的ip192.168.80.131:8083访问后台

grafana的sum语句如何分组 grafana 分组统计_java_03

windows下查看

grafana的sum语句如何分组 grafana 分组统计_centos_04

centos下面查看

grafana的sum语句如何分组 grafana 分组统计_grafana_05

 

还有一个8086的端口打开了grafana和java代码公网操作的,也就是http的,直接像这种访问是没有后台界面的,如果用拼接操作是可以进行操作的,后台会响应json数据回来,

就像这样,我创建一个数据库

grafana的sum语句如何分组 grafana 分组统计_centos_06

这样后台就已经创建了一个数据库了,然后后面的查看链接我写在后面,下面继续安装grafana

安装grafana

 

如果命令安装不了,请直接点击上面链接进行下载,在centos图形界面直接点击进行安装就行,安装包可以放在home下面
<span style="color:#333333">完成安装之后,启动并检查它的状态:</span>


 


[root@metrics ~]# systemctl start grafana-server.service
[root@metrics ~]# systemctl status grafana-server.service


 


如果安装成功,可以直接访问后台界面,

 

账号密码默认是admin和admin

ip地址和刚才查看公网一样的就是,192.168.80.131:3000,端口是默认3000继续访问,

windows下面访问

grafana的sum语句如何分组 grafana 分组统计_influxdb_07

centos可以直接localhost:3000访问界面

grafana的sum语句如何分组 grafana 分组统计_influxdb_08

安装上面两步骤就已经基本完成安装了

下面是进行操作部分

首先influxdb要插入数据:

第一种方法直接centos命令行操作:

 这要链接influxdb进行命令操作

 分为有验证和无验证链接

 


无验证web登录 


root@ubuntu:~# which influx
 
/usr/bin/influx
 
root@ubuntu:~# influx
 
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
 
Connected to http://localhost:8086 version 0.13.0
 
InfluxDB shell version: 0.13.0

 


验证web登录 


1.  先添加用户


     设置 TS 的authorized,提高安全性,针对指定用户拥有权限才能访问数据库的数据,TS默认用户分为普通用户和管理员用户,权限分为 read,write,all privileges 三种权限


root@ubuntu:/home/leco# influx
 
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
 
Connected to http://localhost:8086 version 1.1.1
 
InfluxDB shell version: 1.1.1
 
> CREATE USER " 
 influxdb 
 " WITH PASSWORD  
 'influxdb'  
 WITH ALL PRIVILEGES


先添加账号和密码,均为 influxdb


Web 界面数据库的切换。此时登录 web 的时候需要输入账号和密码,验证通过后才可以正常进入。配置如下:


grafana的sum语句如何分组 grafana 分组统计_java_09


链接上了以后就可以进行dos命令sql语句操作了

#创建数据库  
create database "db_name" 
#显示所有的数据库  
 show databases  
 #删除数据库  
 drop database "db_name"  
 #使用数据库  
 use db_name  
 #显示该数据库中所有的表  
 show measurements  
 #创建表,直接在插入数据的时候指定表名  
 insert test,host=127.0.0.1,monitor_name=test count=1  
 #删除表  
 drop measurement "measurement_name"  
 ##插入数据
 insert admin,username=admin password=123456

第二种用java代码操作的(包括还有其他语言咯):

package com.influxdb.test;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import junit.framework.Assert;

import org.influxdb.dto.QueryResult;
import org.influxdb.dto.QueryResult.Result;
import org.influxdb.dto.QueryResult.Series;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.BeanWrapperImpl;

import com.influxdb.pojo.CodeInfo;

public class InfluxDBTest {

	private InfluxDBConnect influxDBConnect;
	private String username = "root";// 用户名
	private String password = "root";// 密码
	private String openurl = "http://192.168.80.131:8086";// 连接地址
	private String database = "sms";// 数据库
	private String measurement = "sys_code";

	//http://192.168.80.130:8086/query?q=CREATE+DATABASE+%22testDB%22&db=testDB
	
	@Before
	public void setUp() {
		// 创建 连接
		influxDBConnect = new InfluxDBConnect(username, password, openurl, database);

		influxDBConnect.influxDbBuild();

		//influxDBConnect.createRetentionPolicy();
		 //influxDBConnect.deleteDB("sms");
		// influxDB.createDB(database);
	}

	@Test
	public void testInsert() {// 测试数据插入
		Map<String, String> tags = new HashMap<String, String>();
		Map<String, Object> fields = new HashMap<String, Object>();
		List<CodeInfo> list = new ArrayList<CodeInfo>();
		SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
		for (int i = 40; i <= 60; i++) {
			CodeInfo info1 = new CodeInfo();
			info1.setId(i);
			info1.setFlag(1);
			info1.setName("BANKS");
			info1.setCode("ABC");
			info1.setDescr("中国农业银行");
			info1.setDescrE("ABC");
			info1.setTime(new Date().getTime());
			info1.setCreatedBy("system");
			info1.setCreatedAt(formatter.format(new Date()));
			list.add(info1);
		}
		 

 
		for (CodeInfo info : list) {
			tags.put("TAG_CODE", info.getCode());
			tags.put("TAG_NAME", info.getName());
			
			fields.put("ID", info.getId());
			fields.put("FLAG", info.getFlag());
			fields.put("NAME", info.getName());
			fields.put("CODE", info.getCode());
			fields.put("DESCR", info.getDescr());
			fields.put("DESCR_E", info.getDescrE());
			fields.put("CREATED_BY", info.getCreatedBy());
			fields.put("CREATED_AT", info.getCreatedAt());
			fields.put("TIME", info.getTime());
			influxDBConnect.insert(measurement, tags, fields);
		}
	}

	@Test
	public void testQuery() {// 测试数据查询
		String command = "select * from sys_code";
		QueryResult results = influxDBConnect.query(command);

		if (results.getResults() == null) {
			return;
		}
		List<CodeInfo> lists = new ArrayList<CodeInfo>();
		for (Result result : results.getResults()) {

			List<Series> series = result.getSeries();
			for (Series serie : series) {
				// Map<String, String> tags = serie.getTags();
				List<List<Object>> values = serie.getValues();
				List<String> columns = serie.getColumns();

				lists.addAll(getQueryData(columns, values));
			}
		}

		Assert.assertTrue((!lists.isEmpty()));
		Assert.assertEquals(2, lists.size());
	}

	@Test
	public void testQueryWhere() {// tag 列名 区分大小写
		String command = "select * from sys_code where TAG_CODE='ABC'";
		QueryResult results = influxDBConnect.query(command);

		if (results.getResults() == null) {
			return;
		}
		List<CodeInfo> lists = new ArrayList<CodeInfo>();
		for (Result result : results.getResults()) {

			List<Series> series = result.getSeries();
			for (Series serie : series) {
				List<List<Object>> values = serie.getValues();
				List<String> columns = serie.getColumns();

				lists.addAll(getQueryData(columns, values));
			}
		}

		Assert.assertTrue((!lists.isEmpty()));
		Assert.assertEquals(1, lists.size());

		CodeInfo info = lists.get(0);

		Assert.assertEquals(info.getCode(), "ABC");

	}

	@Test
	public void deletMeasurementData() {
		String command = "delete from sys_code where TAG_CODE='ABC'";
		String err = influxDBConnect.deleteMeasurementData(command);
		Assert.assertNull(err);
	}

	/*** 整理列名、行数据 ***/
	private List<CodeInfo> getQueryData(List<String> columns,
			List<List<Object>> values) {
		List<CodeInfo> lists = new ArrayList<CodeInfo>();

		for (List<Object> list : values) {
			CodeInfo info = new CodeInfo();
			BeanWrapperImpl bean = new BeanWrapperImpl(info);
			for (int i = 0; i < list.size(); i++) {

				String propertyName = setColumns(columns.get(i));// 字段名
				Object value = list.get(i);// 相应字段值
				bean.setPropertyValue(propertyName, value);
			}

			lists.add(info);
		}

		return lists;
	}

	/*** 转义字段 ***/
	private String setColumns(String column) {
		String[] cols = column.split("_");
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < cols.length; i++) {
			String col = cols[i].toLowerCase();
			if (i != 0) {
				String start = col.substring(0, 1).toUpperCase();
				String end = col.substring(1).toLowerCase();
				col = start + end;
			}
			sb.append(col);
		}
		return sb.toString();
	}
	
}
package com.influxdb.test;

import java.util.Map;

import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.Point;
import org.influxdb.dto.Point.Builder;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;

/**
 * 时序数据库 InfluxDB 连接
 */
public class InfluxDBConnect {

	private String username;// 用户名
	private String password;// 密码
	private String openurl;// 连接地址
	private String database;// 数据库

	private InfluxDB influxDB;

	public InfluxDBConnect(String username, String password, String openurl,
			String database) {
		this.username = username;
		this.password = password;
		this.openurl = openurl;
		this.database = database;
	}

	/** 连接时序数据库;获得InfluxDB **/
	public InfluxDB influxDbBuild() {
		if (influxDB == null) {
			influxDB = InfluxDBFactory.connect(openurl, username, password);
			 //influxDB.createDatabase(database);

		}
		return influxDB;
	}

	/**
	 * 设置数据保存策略 defalut 策略名 /database 数据库名/ 30d 数据保存时限30天/ 1 副本个数为1/ 结尾DEFAULT
	 * 表示 设为默认的策略
	 */
	public void createRetentionPolicy() {
		String command = String
				.format("CREATE RETENTION POLICY \"%s\" ON \"%s\" DURATION %s REPLICATION %s DEFAULT",
						"defalut", database, "30d", 1);
		this.query(command);
	}

	/**
	 * 查询
	 * 
	 * @param command
	 *            查询语句
	 * @return
	 */
	public QueryResult query(String command) {
		return influxDB.query(new Query(command, database));
	}

	/**
	 * 插入
	 * 
	 * @param measurement
	 *            表
	 * @param tags
	 *            标签
	 * @param fields
	 *            字段
	 */
	public void insert(String measurement, Map<String, String> tags,
			Map<String, Object> fields) {
		Builder builder = Point.measurement(measurement);
		builder.tag(tags);
		builder.fields(fields);

		influxDB.write(database, "", builder.build());
	}

	/**
	 * 删除
	 * 
	 * @param command
	 *            删除语句
	 * @return 返回错误信息
	 */
	public String deleteMeasurementData(String command) {
		QueryResult result = influxDB.query(new Query(command, database));
		return result.getError();
	}

	/**
	 * 创建数据库
	 * 
	 * @param dbName
	 */
	public void createDB(String dbName) {
		influxDB.createDatabase(dbName);
	}

	/**
	 * 删除数据库
	 * 
	 * @param dbName
	 */
	public void deleteDB(String dbName) {
		influxDB.deleteDatabase(dbName);
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getOpenurl() {
		return openurl;
	}

	public void setOpenurl(String openurl) {
		this.openurl = openurl;
	}

	public void setDatabase(String database) {
		this.database = database;
	}
}
package com.influxdb.pojo;

import java.io.Serializable;

public class CodeInfo implements Serializable {

	private static final long serialVersionUID = 1L;

	private Integer id;
	private Integer flag;
	private String name;
	private String code;
	private String descr;
	private String descrE;
	private String createdBy;
	private String createdAt;
	private Long time;
	private String tagCode;
	private String tagName;

	/**
	 * @return the flag
	 */
	public Integer getFlag() {
		return flag;
	}

	/**
	 * @param flag
	 *            the flag to set
	 */
	public void setFlag(Integer flag) {
		this.flag = flag;
	}

	/**
	 * @param createdAt
	 *            the createdAt to set
	 */
	public void setCreatedAt(String createdAt) {
		this.createdAt = createdAt;
	}

	/**
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * @return the createdAt
	 */
	public String getCreatedAt() {
		return createdAt;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getDescr() {
		return descr;
	}

	public void setDescr(String descr) {
		this.descr = descr;
	}

	public String getDescrE() {
		return descrE;
	}

	public void setDescrE(String descrE) {
		this.descrE = descrE;
	}

	public String getCreatedBy() {
		return createdBy;
	}

	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * @return the time
	 */
	public Long getTime() {
		return time;
	}

	/**
	 * @param time
	 *            the time to set
	 */
	public void setTime(Long time) {
		this.time = time;
	}

	public String getTagCode() {
		return tagCode;
	}

	public void setTagCode(String tagCode) {
		this.tagCode = tagCode;
	}

	public String getTagName() {
		return tagName;
	}

	public void setTagName(String tagName) {
		this.tagName = tagName;
	}

}

jar包

grafana的sum语句如何分组 grafana 分组统计_grafana_10

 

运行结果:

 

grafana的sum语句如何分组 grafana 分组统计_centos_11

整个项目我打包放这链接下:有需要的可以下载:已经全部测试通过了:

 

最后我们就是让grafana的图标监控展示出来了:

先进入dataSources配置数据源:

grafana的sum语句如何分组 grafana 分组统计_centos_12

 

记得是配置8086的那个端口,否则不会成功,包括java代码的

上面没有设置数据库密码可以不输入

在进入dashboard里面new一个模板

拉入插件

点击进入编辑

grafana的sum语句如何分组 grafana 分组统计_influxdb_13

编辑查询语句,模板标题,以及颜色和一些参数配置就ok

grafana的sum语句如何分组 grafana 分组统计_java_14

配置好了,保存,选择右上角过滤的时间

数据图形监控就显示了

grafana的sum语句如何分组 grafana 分组统计_grafana_15

 

 

最后提供一些http API:

 


二、InfluxDB进行HTTP API查询方法


使用HTTP API在InfluxDB进行查询主要是发送 GET 请求到 InfluxDB的 /query 端,调用示例如下所示:


curl -GET 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"


参数db指定了需查询的 数据库 ,q代表了需执行的查询语句。


 


三、InfluxDB进行HTTP API查询多条数据


我们可能需要用InfluxDB进行多条查询,HTTP API提供的多条查询的格式如下所示:


curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west';SELECT count(value) FROM cpu_load_short WHERE region='us-west'"


格式与单条查询相同,只是在多条语句之间要用分号“;”分隔。


返回值也是包含结果的json串。


 


四、InfluxDB HTTP 查询的格式化输出


1)规定时间格式


在使用HTTP查询时可以使用  epoch  参数指定输出的时间格式。可选值有 epoch=[h,m,s,ms,u,ns]。


例如:


curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"


这样会获取到以秒为单位的时间数据。


2)指定每次查询数据大小


可以使用  chunk_size  参数来指定每次结果的大小。比如,我要结果每次返回200个点的数据,则如下所示:


curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "chunk_size=200" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"


这样查询结果就会返回200个点的数据。


 


增加


curl -i -XPOST 'http://127.0.0.1:8086/write?db=metrics' --data-binary 'test,host=127.0.0.1,monitor_name=test count=1'  


 


普通查询


curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=metrics" --data-urlencode "q=select * from test order by time desc"  


 


建立数据库


curl - POST http: // localhost: 8086 / query --data-urlencode "q=CREATE DATABASE mydb"


执行这个语句后,会在本地建立一个名为mydb的数据库。


 


删除 数据库


curl - POST http: // localhost: 8086 / query --data-urlencode "q=DROP DATABASE mydb"


其实使用HTTP API就是向 InfluxDB 接口发送相应的POST请求。


将语句通过POST方式发送到 服务 器。


 


InfluxDB通过HTTP API添加数据


InfluxDB通过HTTP API添加数据主要使用如下格式:


curl - i - XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'


说明:db=mydb是指使用mydb这个数据库。


--data-binary后面是需插入数据。


cpu_load_short是表名(measurement),tag字段是host和region,值分别为:server01和us-west。


field key字段是value,值为0.64。


时间戳(timestamp)指定为1434055562000000000。


这样,就向mydb数据库的cpu_load_short表中插入了一条数据。


其中,db参数必须指定一个数据库中已经存在的数据库名,数据体的格式遵从InfluxDB规定格式,首先是表名,后面是tags,然后是field,最后是时间戳。tags、field和时间戳三者之间以空格相分隔。


 


InfluxDB通过HTTP API添加多条数据


InfluxDB通过HTTP API添加多条数据与添加单条数据相似,示例如下:


curl - i - XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67 cpu_load_short,host = server02,region = us - west value = 0.55 1422568543702900257cpu_load_short,direction =in ,host = server01,region = us - west value = 2.0 1422568543702900257 '


这条语句向数据库mydb的表cpu_load_short中插入了三条数据。


第一条指定tag为host,值为server02,第二条指定tag为host和region,值分别为server02和us-west,第三条指定tag为direction,host,region,值分别为:in,server01,us-west。


 


InfluxDB 的HTTP API响应


在使用HTTP API时,InfluxDB的响应主要有以下几个:


1)2xx:204代表no content,200代表InfluxDB可以接收请求但是没有完成请求。一般会在body体中带有出错信息。


2)4xx:InfluxDB不能解析请求。


3)5xx:系统出现错误。


 

数据库操作:

 


#创建数据库


create database "db_name"


 


#显示所有的数据库


show databases


 


#删除数据库


drop database "db_name"


 


#使用数据库


use db_name


 


#显示该数据库中所有的表


show measurements


 


#创建表,直接在插入数据的时候指定表名


insert test,host=127.0.0.1,monitor_name=test count=1


 


#删除表


drop measurement "measurement_name"


 


##插入数据


insert admin,username=admin password=123456


 


表名都可以正则


select * from /.*/ limit 1


 


查询一个表里面的所有数据


select * from cpu_idle


 


查询数据大于200的。


select * from response_times where value > 200


 


查询数据里面含有下面字符串的。 

select * from user_events where url_base = ‘friends#show’
 

    

 
约等于 
 
select line from log_lines where line =~ /paul@influx.com/

 


按照30m分钟进行聚合,时间范围是大于昨天的   主机名是server1的。 

select mean(value) from cpu_idle group by time(30m) where time > now() – 1d and hostName = ‘server1′
 
select column_one  from foo  where time > now() – 1h limit 1000;
 
select reqtime, url from web9999.httpd where reqtime > 2.5;
 
select reqtime, url from web9999.httpd where time > now() – 1h limit 1000;


 


url搜索里面含有login的字眼,还以login开头


select reqtime, url from web9999.httpd where url =~ /^\/login\//;
 

    

 
还可以做数据的merge
 
select reqtime, url from web9999.httpd merge web0001.httpd;


 

按时间分组统计数据(分组只能用time()注意空格) 

 
select count(allTime) 
 from pay 
 where
 

    

 

  按指定时间段查询数据 

 
select count(allTime),mean(allTime) 
 from pay 
 where time>= 
 '2016-11-30T16:00:00Z'and time<= 
 '2016-12-01T16:59:59Z' and orderFlag= 
 '1'

 


脚本执行数据格式 

 
"select count(allTime),mean(allTime) from pay 
 
where time>='2016-12-10T16:00:00Z'and time<='2016-12-11T16:59:59Z' and orderFlag='1' " -database 
 'online'; 查询2016-12-11全天数据 

 

  格式: influx -execute "sql" -database 'databasename'


注意如果自己程序生成的时间戳作为time,则需要注意查询出的数据时间相差8小时,所以查某一天的数据需要减掉8小时,如上


 


 


连续查询(Continous Queries)


当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?


influxdb提供了联系查询,可以做数据统计采样。


• 查看数据库的Continous Queries
1. show continuous queries  
• 创建新的Continous Queries
2. create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end 
• cq_name:连续查询名字
• db_name:数据库名字
• sum(count):计算总和
• table_name:当前表名
• new_table_name:存新的数据的表名
• 30m:时间间隔为30分钟
• 删除Continous Queries
3. drop continous query cp_name on db_name


数据保存策略


nfluxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。

• 查看当前数据库Retention Policies
1. show retention policies on "db_name"
• 创建新的Retention Policies
2. create retention policy "rp_name" on "db_name"
• rp_name:策略名
• db_name:具体的数据库名
• 3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)
• replication 1:副本个数,一般为1就可以了
• default:设置为默认策略
• 修改Retention Policies
3. alter retention policy "rp_name" on "db_name"
• 删除Retention Policies
4. drop retention policy "rp_name"


用户管理


可以直接在web管理页面做操作,也可以命令行。


1. #显示用户  
2. show users    
3. #创建用户  
4. create user "username" with password 'password'
5. #创建管理员权限用户  
6. create user "username" with password 'password' with all
7. #删除用户  
8. drop user "username"