处理用千牛导出淘宝数据,供Logstash到Elasticsearch使用。(NodeJS)

var rf=require("fs");  

// 加载编码转换模块
//npm install iconv-lite
var iconv = require(‘iconv-lite‘);  

var fileName = "2017-03-01~2017-05-31";

//读取二进制
var data=rf.readFileSync(fileName+".txt","binary");  

//转化GBK格式
var buf = new Buffer(data, ‘binary‘);
var str = iconv.decode(buf, ‘GBK‘);  

var newData = handleMS(str);
var oDate = new Date();
writeFile(fileName+newGuid()+".json", newData);

console.log("The END");  

//解析数据
function handleMS(data){

    var newData = "";

    var arr = str.split(‘\r\n‘);

    //获取客服名称
    var callcenter = arr[0];

    var customer = "";
    for (var i = 7 ; i <arr.length; i++) {

        var item = arr[i];

        if (item == "") {
            continue;
        };

        var delimiter = ‘----------------------------‘;
        if (item.indexOf(delimiter)  != -1) {
            customer = item.split(delimiter)[1];
            continue;
        };

        var cc = item.split(‘(‘)[0];
        var date = "";item.split(‘(‘)[1];

        var message =  "";
        var preMessage  =item.split(‘):  ‘);
        if (preMessage.length == 2) {
            message = preMessage[1];
            var date = item.split(‘)‘)[0].split(‘(‘)[1];
        };
        newData += JSON.stringify({who:cc,date:date,m:message, isCC:cc == callcenter ? 1 : 0})+"\r\n";
    }
    return newData;
}

//写文件
function writeFile(file, data){
    // 把中文转换成字节数组
    var arr = iconv.encode(data, ‘utf-8‘);  

    // appendFile,如果文件不存在,会自动创建新文件
    // 如果用writeFile,那么会删除旧文件,直接写新文件
    rf.writeFile(file, arr, function(err){
        if(err)
            console.log("fail " + err);
        else
            console.log("写入文件ok");
    });
}  

function newGuid()
{
    var guid = "";
    for (var i = 1; i <= 32; i++){
      var n = Math.floor(Math.random()*16.0).toString(16);
      guid +=   n;
      if((i==8)||(i==12)||(i==16)||(i==20))
        guid += "-";
    }
    return guid;
}

Logstash.conf

input {
      file {
          path => "D:/logstash-5.2.2/testdata/*.json"
          start_position => "beginning"
          sincedb_path => "D:/logstash-5.2.2/bin/sincedb"
          codec => json {
            charset => "UTF-8"
        }
      }
}
filter {
   json{
   source => "message"
   }

    mutate
    {
        remove_field => [ "message","path","@version","@timestamp","host","_id","value"]
    }
}
output {
    elasticsearch {
        action => "index"
        hosts => ["http://172.31.2.9:9200/"]
        user => "admin"
        password => "123456"

        index => "testtbmsdb3"
        document_type => "ms"
        workers => 1
    }
     #stdout {
         #codec => rubydebug
         #codec => json_lines
     #}
} 
时间: 2024-10-17 08:29:56

处理用千牛导出淘宝数据,供Logstash到Elasticsearch使用。(NodeJS)的相关文章

python 脚本开发实战-当当亚马逊图书采集器转淘宝数据包

开发环境python2.7.9 os:win-xp exe打包工具pyinstaller 界面tkinter ============================================= 最近有个朋友让我写个小功能,采集当当网数据,生成淘宝数据包 需要采集出版社,作者,主图,价格 采集方式是搜索书名或者ISBN编号 废话不多说,老司机开始上路了 首先,分析当当网数据,这里祭出大杀器,firefox下fire-bug,查看网络数据不再话下 查看源码 <ul id="compon

「实例操作」抓取耐克中国官网数据转淘宝数据包-1 获取商品链接

最近接了个单子,要抓耐克中国的数据,把里面的商品转化成淘宝数据包,可以直接上传宝贝 客户提出了3个要求: 1:批量下载全网站商品: 2:定期更新网站新品: 3:批量更新淘宝库存,检查网站数据 这边先确定思路 第一是要抓取这些商品的列表, 第二是抓取单品的信息, 第三是把信息按照淘宝数据包格式输出. 这样就解决了第一个要求, 第二个邀请是抓取新品,这个要求可以这样理解,定期抓取所以链接,并保存下来,如果有的新的链接,那就是新品, 第三个要求更新库存,这个要有淘宝接口,我朋友那边有,借用下即可 ==

淘宝数据魔方技术架构解析(转)

淘宝网拥有国内最具商业价值的海量数据.截至当前(2011年8月),每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业的数据化运营,帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命. 为此,我们进行了一系列数据产品的研发,比如为大家所熟知的量子统计.数据魔方和淘宝指数等.尽管从业务层面来讲,数据产品的研发难度并不高:但在"海量"的限定下,数据产品的计算.存储和检索难度陡然上升.本

《淘宝数据魔方技术架构解析》阅读心得

淘宝网拥有国内最具商业价值的海量数据.截至当前,每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业的数据化运营,帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命. 数据产品的一个最大特点是数据的非实时写入,正因为如此,我们可以认为,在一定的时间段内,整个系统的数据是只读的.这为我们设计缓存奠定了非常重要的基础. 关系型数据库(RDBMS)自20世纪70年代提出以来,在工业生产中得到了广泛

淘宝数据魔方技术架构解析

淘宝网拥有国内最具商业价值的海量数据,而帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命.为此,我们进行了一系列数据产品的研发,比如为大家所熟知的量子统计.数据魔方和淘宝指数等.本文将以数据魔方为例,向大家介绍淘宝在海量数据产品技术架构方面的探索. 按照数据的流向来划分,我们把淘宝数据产品的技术架构分为五层,分别是数据源.计算层.存储层.查询层和产品层.位于架构顶端的是我们的数据来源层,这里有淘宝主站的用户.店铺.商品和交易等数据库,还有用户的浏览.搜索等行为日志等.这一系列的数据是数

《淘宝数据魔方技术架构解析》----阅读

我们都知道淘宝,也都在使用淘宝.但让我们自己制作一个淘宝app很难,让我们想出关于淘宝的架构更难.最近阅读了<淘宝数据魔方技术架构解析>(https://mp.weixin.qq.com/s?__biz=MzAxNjAzMTQyMA==&mid=2648476063&idx=1&sn=882fb8584b82107d5af191af5b805d0e&chksm=83d3224cb4a4ab5a72e04dbaa6c6621cc866ab913bb7abb1aa8

【淘宝数据干货】我用数据告诉你互联网安全套行业是什么样的?【不看后悔!!!】

最近互联网思维这个词很火,各种产品被包装成了高大上,然后一群神棍把小白们忽悠的昏天黑地.到处都是小米,黄太吉,马佳佳,雕爷牛腩的成功案例.但是今天,我的文章与互联网思维没有半毛线关系,前面也都是废话.我用最真实最新鲜热乎的数据来告诉你,真正的互联网安全套行业是什么样的. ======华丽的分割线=========== 数据来源:通过爬虫技术对主流的套套平台的公开页面进行大量的数据抓取. 数据日期:最近30天. 分析工具:商业智能FineBI数据分析工具(可至FineBI官网下载) 数据仅供参考,

淘宝杨志丰:OceanBase--淘宝结构化大数据解决之道

时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了“数据就是业务本身”的地步.这种趋势已经让很多相信数据之力量的企业做出改变.恰逢此时,为了让更多的人了解和使用分析大数据,CSDN独家承办的大数据技术大会于今日在北京中旅大厦召开.本次大会汇集Hadoop.NoSQL.数据分析与挖掘.数据仓库.商业智能以及开源云计算架构等诸多热点话题.包括百度.淘宝.新浪等业界知名专家与参会者齐聚一堂,共同探讨大数据浪潮下的行业应对法则以及大数据时代的抉择. 淘

淘宝异构数据源数据交换工具 DataX

淘宝异构数据源数据交换工具 DataX 阅读目录 DataX是什么? DataX用来解决什么? DataX特点? DataX结构模式(框架+插件) DataX在淘宝的运用 DataX是什么? DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesystem)之间的数据交换,由淘宝数据平台部门完成. 回到顶部 DataX用来解决什么? 目前成熟的数据导入导出工具比较多,但是一般都只能用于数据导入或者导出,并且只能支持