Druid 基础使用-操作篇(Imply )
一、Imply
Druid 原生的配置较麻烦,在上一篇单机版安装中有所涉及
Imply 基于Druid 进行了一些组件的开发,提供开源社区版本和商业版,简化了部署,开发了一些应用.https://imply.io/product
二、
安装
- 下载nodejs 安装(http://jingyan.baidu.com/article/dca1fa6f48f478f1a5405272.html)
- .安装imply
- 下载最新版本 imply-1.3.1.tar https://imply.io/download
- tar -xzf imply-1.3.1.tar
- 启动
1[root@Druid imply-1.3.1]# bin/supervise -c conf/supervise/quickstart.conf -可以nohup 后台执行
三、Imply 数据的发送
1.修改 tranquility 组件下server.josn 中的数据相关信息 --表名称、维度列、指标列
修改后的数据结构如下
{
"dataSources": {
"pageviews": {
"spec": {
"dataSchema": {
"dataSource": "pageviews",
"parser": {
"type": "string",
"parseSpec": {
"timestampSpec": {
"format": "auto",
"column": "time"
},
"dimensionsSpec": {
"dimensions": [
"url",
"user"
]
},
"format": "json"
}
},
"granularitySpec": {
"type": "uniform",
"segmentGranularity": "hour",
"queryGranularity": "none"
},
"metricsSpec": [
{
"name": "views",
"type": "count"
},
{
"name": "latencyMs",
"type": "doubleSum",
"fieldName": "latencyMs"
}
]
},
"ioConfig": {
"type": "realtime"
},
"tuningConfig": {
"type": "realtime",
"maxRowsInMemory": "",
"intermediatePersistPeriod": "PT10M",
"windowPeriod": "PT10M"
}
},
"properties": {
"task.partitions": "",
"task.replicants": ""
}
}
},
"properties": {
"zookeeper.connect": "localhost",
"druid.discovery.curator.path": "/druid/discovery",
"druid.selectors.indexing.serviceName": "druid/overlord",
"http.port": "",
"http.threads": ""
}
2.重新启动Imply --这个地方有个疑问 如何动态的设置表的名称呢?tranquility 重启 原因在于重启的时候指定了server.json 这个配置文件?
3.在linnux系统中进行数据的发送
curl -XPOST -H'Content-Type: application/json' --data-binary @../003.jsonhttp://*。*。*。*:8200/v1/post/pageviews --pageviews 必须提前声明,否则回提示数据源未定义 ,如何动态增加呢
003.josn 数据源的数据,一定要注意time 数据,一是时间最好是当前时间,否则tranquility 仅能收到数据,不会想Druid进行数据的发送,比如 receive 3 send 0

如果一切正常,将会受到 received 3 send 3
4.c# 代码进行json数据的发送 --post json
/// <summary>
/// 插入数据,基于服务端已经有的一个表pageviews
/// </summary>
[TestMethod]
public void InsertData()
{
string url = "http://*.*.*.*:8200/v1/post/pageviews"; //发送数据
string data = PostHttp(url, GetData());
DruiExecuteResult result = JsonConvert.DeserializeObject<DruiExecuteResult>(data); Assert.IsTrue(result.result.received == "");
Assert.IsTrue(result.result.received == "");
}
public string GetData()
{
StringBuilder sb = new StringBuilder();
string temp = string.Empty;
string ISO8601time = string.Empty;
for (int i = ; i < ; i++)
{
ISO8601time = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzzz", DateTimeFormatInfo.InvariantInfo);
temp = "{\"time\":\"" + ISO8601time + "\",\"url\":\"test" + i.ToString() + "\",\"user\":\"hello" + i.ToString() + "\",\"latencyMs\":" + i.ToString() + "}";
sb.AppendLine(temp);
} string result = sb.ToString(); return result;
}
private static string PostHttp(string url, string body)
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
httpWebRequest.ContentType = "application/json";
//httpWebRequest.ContentType = "text/plain"; httpWebRequest.Method = "POST";
httpWebRequest.Timeout = ;
httpWebRequest.KeepAlive = false;
byte[] btBodys = Encoding.UTF8.GetBytes(body);
httpWebRequest.ContentLength = btBodys.Length;
string responseContent = string.Empty;
HttpWebResponse httpWebResponse = null;
StreamReader streamReader = null;
try
{
httpWebRequest.GetRequestStream().Write(btBodys, , btBodys.Length);
httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
streamReader = new StreamReader(httpWebResponse.GetResponseStream());
responseContent = streamReader.ReadToEnd();
}
catch (Exception er)
{
throw new Exception("执行出现异常:" + "数据:" + body, er);
}
finally
{
if (httpWebResponse != null)
{
httpWebResponse.Close();
}
if (streamReader != null)
{
streamReader.Close();
}
httpWebRequest.Abort();
} return responseContent;
}
Druid 基础使用-操作篇(Imply )的更多相关文章
- Druid 基础使用-操作篇(Pivot、plyql)
一.Pivot --9095 端口 二.基本sql 使用 .plysql-- http://plywood.imply.io/plyql (下面的端口应该是8082,我这个地方做了端口转换) ...
- Oracle知识梳理(三)操作篇:SQL基础操作汇总
Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_ ...
- 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】
老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...
- NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...
- .NET 并行(多核)编程系列之六 Task基础部分完结篇
原文:.NET 并行(多核)编程系列之六 Task基础部分完结篇 .NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些 ...
- 详解Google Chrome浏览器(操作篇)(下)
开篇概述 由于最近忙于公司产品的架构与研发,已经三个多月没有写博客了,收到有些朋友的来信,问为什么不及时更新博客内容呢,他们说他们正期待着某些内容.对此,非常抱歉,那么我在此也给各位朋友一些承诺,从即 ...
- JavaWeb开发技术基础概念回顾篇
JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...
- JavaScript--我发现,原来你是这样的JS(基础概念--灵魂篇,一起来学js吧)
介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...
- SQL数据库基础知识-巩固篇<一>
SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
随机推荐
- hping原理、安装、使用详解介绍
[原理基础] Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP.UDP.ICMP和RAW ...
- MSP430单片机的两种SPI总线实现方式
MSP430单片机上的SPI总线的实现方式分为两种:硬件实现和软件实现. 二者的抽象层次不同,硬件实现方式下程序员只需要完成总线协议的寄存器层,即一字节(char,8位二进制)数据,而软件实现方式下程 ...
- Java设计模式(二) 工厂方法模式
本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...
- IOS常见异常捕获
前言:在开发APP时,我们通常都会需要捕获异常,防止应用程序突然的崩溃,防止给予用户不友好的体验.其实Objective-C的异常处理方法和JAVA的雷同,懂JAVA的朋友一看就懂.我为什么要写这篇博 ...
- Obiee11g变量
原文地址:http://xee123.blog.163.com/blog/static/277119942012612104438332/ Obiee 版本 11.1.1.5 库变量 库变量在同一时刻 ...
- 【Summary】ANSYS TRANSIENT ANALYSIS
1.4. Damping: https://www.sharcnet.ca/Software/Ansys/15.0.7/en-us/help/ans_str/Hlp_G_STR1D.html 8.7. ...
- AJAX 状态值(readyState)与状态码(status)详解
总结:status体现的是服务器对请求的反馈,而readystate表明客户端与客户的交互状态过程. 1- AJAX状态值与状态码区别AJAX状态值是指,运行AJAX所经历过的几种状态,无论访问是否成 ...
- sql中的跨库查询
在sql查询时,需要关联2个服务器上的不同数据库,只需要在所需查询的表名前加上服务器地址即可. 例如:在 192.168.0.15,8020的db110库 和 192.168.0.150,8082的d ...
- 空的安卓工程添加activity
1.编写类继承activity,并重写onCreate方法 package org.tonny; import android.app.Activity; import android.os.Bund ...
- formData上传图片
---------------------formData上传图片--------------------- <form id="imageform"> <img ...