ES使用

Diving into the funcationality

逻辑结构

ElasticSearch是面向文档的,即索引与查询的最小单元就是文档(Document)。

1
2
3
4
5
{
"name": "Elasticsearch Denver",
"organizer": "Lee",
"location": "Denver, Colorado, USA"
}

Types是文档在逻辑上的容器,类似于表包含行一样。不同结构的文档,放在不同的type类型下面。在一个Type中,对于fields的定义,叫做映射(mapping)。类似表结构的定义。Index是types的容器,类似于数据库。整体结构如下:

ES:Document—Type—Index
对应关系表:行—表—库

阅读更多

HBase获取数据性能对比

hbase

对HBase中的数据读取,有多种方式,如Get,List,Scan等,本文通过对不同数据读取方式进行了对比。

数据准备

首先,准备数据写入HBase,总数10万记录,格式如下:

1-aabbcc

10-aabbcc

100-aabbcc

2-aabbcc

20-aabbcc

200-aabbcc

阅读更多

Flume拦截器interceptor开发

Flume除了提供强大的Source,Sink以及Channel之外,还提供了Interceptor机制,在Source端获取数据后,可以立即对数据进行处理。

除了Flume提供的系统Interceptor拦截器之外,用户还可以通过自定义的方法利用代码实现更为复杂且灵活的拦截器。

阅读更多

Flume的KafkaSink配置探究

Flume在大数据环境下,通常用来进行数据的搬运,它提供了丰富的Source和Sink组件,使得我们可以很方便的进行各组异构环境下的配置。KafkaSink是其中较为普遍使用的sink组件,它支持Flume将采集到的数据发送到Kafka消息队列中。

在Flume提供的KafkaSink的相关配置参数中,有一些与kafka的topic以及分区相关的配置参数,可以帮助我们在面对多Topic或多分区的情况下,更灵活地利用Flume的Sink机制,将数据分发到正确的队列中。

阅读更多

mixpanel系统架构(译)

作者:Vijay Jayaram

时间:June 2018

译者:ovasty

介绍

Mixpanel是一个用户分析平台,它让任何人都可以从数据中学习并采取行动。它从遍布全世界的客户的网站和移动App中获取数据并通过可交互的用户界面生成汇总的报告。为了能够提供一个强有力的,支持大规模用户分析的工具,我们花费了数年时间搭建自已的数据库,名叫Arb。在这篇文章中,我们将深入系统架构之中,一探究竟。

我们内部开发了Arb来满足自身严苛的需求:

  • 以用户为中心:Arb是一个定制开发的数据库,为了满足复杂的以用户为中心的查询请求
  • 速度:多数的查询响应时间都少于1秒
  • 实时:采集的数据在1分钟之内即可被查询
  • 可扩展:我们每天采集TB规模的数据,单个查询通常扫描100GB。我们使用Google Cloud,可以进行有效的扩展以满足客户的需求。
阅读更多