一、Imply

Druid 原生的配置较麻烦,在上一篇单机版安装中有所涉及
   Imply 基于Druid 进行了一些组件的开发,提供开源社区版本和商业版,简化了部署,开发了一些应用.https://imply.io/product

二、

安装

  1. 下载nodejs 安装(http://jingyan.baidu.com/article/dca1fa6f48f478f1a5405272.html)
  2. .安装imply
    1. 下载最新版本 imply-1.3.1.tar  https://imply.io/download
    2. tar -xzf imply-1.3.1.tar
  3. 启动
     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 )的更多相关文章

  1. Druid 基础使用-操作篇(Pivot、plyql)

    一.Pivot  --9095 端口  二.基本sql 使用 .plysql--   http://plywood.imply.io/plyql  (下面的端口应该是8082,我这个地方做了端口转换) ...

  2. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  3. 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】

    老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...

  4. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者

    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...

  5. .NET 并行(多核)编程系列之六 Task基础部分完结篇

    原文:.NET 并行(多核)编程系列之六 Task基础部分完结篇 .NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些 ...

  6. 详解Google Chrome浏览器(操作篇)(下)

    开篇概述 由于最近忙于公司产品的架构与研发,已经三个多月没有写博客了,收到有些朋友的来信,问为什么不及时更新博客内容呢,他们说他们正期待着某些内容.对此,非常抱歉,那么我在此也给各位朋友一些承诺,从即 ...

  7. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  8. JavaScript--我发现,原来你是这样的JS(基础概念--灵魂篇,一起来学js吧)

    介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容,当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂 ...

  9. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

随机推荐

  1. AOP 手动,半自动,全自动

    dao层 package com.yaorange.dao; public interface StudentDao { public void saveStudent(); public void ...

  2. Oracle笔记2-数据库设计

    数据库的设计 软件开发的流程:立项->需求分析->概要设计->详细设计->实现->测试->交付->维护 [含数据库设计] 通过需求分析,就可以抽取出关键业务中 ...

  3. 今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下

    要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要 ...

  4. chosen组件实现下拉框

    chosen组件用于增强原生的select控件,使之有更好的用户体验.官方demo https://harvesthq.github.io/chosen/ 目前项目中碰到的使用,比如一个页面中有两个不 ...

  5. .split()函数使用方法

    split说明 split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) split语法 str.split('type',num)[n] 整个语法的意思是:以 ...

  6. Torch 日志文件的保存 logroll

    Torch 日志文件的保存 logroll 怎样将 Torch 在终端显示的信息,保存到 log 文件中 ?   现在介绍一种方法:利用 logroll 的方式.  参考 https://github ...

  7. CentOS7关闭防火墙方法

    在之前的版本中关闭防火墙等服务的命令是 service iptables stop /etc/init.d/iptables stop 在RHEL7中,其实没有这个服务 [root@rhel7 ~]# ...

  8. 欢迎你,phpWeChat 开发者

    感谢您使用 phpWeChat 来作为自己网站或者微信公共号的开发工具.phpWeChat 是一款高效.稳定的网站+微信公共号内容管理系统(CMS),也可称之为一个PHP开发框架. phpWeChat ...

  9. tomcat war部署根目录下

    一个很取巧的办法,步骤如下: 1. 删除webapp下所有文件 cd ${TOMAT_HOME}/webapps && rm -rf * 2. copy待部署war到webapps目录 ...

  10. DBMS_OUTPUT in SQL Developer

    I fell sad for all the programmers(including) that has to SQL Developer as sql IDE. However, if you ...