在阿里云Linux上安装Mongo DB 3.0

Installation Steps

$ cd /etc/yum.repos.d
$ sudo vi mongodb-org-3.0.repo

[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1

$ sudo yum install -y mongodb-org

Loaded plugins: branch, security
mongodb-org-3.0 | 951 B 00:00
mongodb-org-3.0/primary | 8.6 kB 00:00
mongodb-org-3.0 45/45
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package mongodb-org.x86_64 0:3.0.6-1.el6 will be installed
–> Processing Dependency: mongodb-org-shell = 3.0.6 for package: mongodb-org-3.0.6-1.el6.x86_64
–> Processing Dependency: mongodb-org-tools = 3.0.6 for package: mongodb-org-3.0.6-1.el6.x86_64
–> Processing Dependency: mongodb-org-server = 3.0.6 for package: mongodb-org-3.0.6-1.el6.x86_64
–> Processing Dependency: mongodb-org-mongos = 3.0.6 for package: mongodb-org-3.0.6-1.el6.x86_64
–> Running transaction check
—> Package mongodb-org-mongos.x86_64 0:3.0.6-1.el6 will be installed
—> Package mongodb-org-server.x86_64 0:3.0.6-1.el6 will be installed
—> Package mongodb-org-shell.x86_64 0:3.0.6-1.el6 will be installed
—> Package mongodb-org-tools.x86_64 0:3.0.6-1.el6 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================
Installing:
mongodb-org x86_64 3.0.6-1.el6 mongodb-org-3.0 4.6 k
Installing for dependencies:
mongodb-org-mongos x86_64 3.0.6-1.el6 mongodb-org-3.0 3.9 M
mongodb-org-server x86_64 3.0.6-1.el6 mongodb-org-3.0 8.3 M
mongodb-org-shell x86_64 3.0.6-1.el6 mongodb-org-3.0 4.1 M
mongodb-org-tools x86_64 3.0.6-1.el6 mongodb-org-3.0 31 M

Transaction Summary
====================================================================================================================================
Install 5 Package(s)

Total download size: 48 M
Installed size: 149 M
Downloading Packages:
(1/5): mongodb-org-3.0.6-1.el6.x86_64.rpm | 4.6 kB 00:00
(2/5): mongodb-org-mongos-3.0.6-1.el6.x86_64.rpm | 3.9 MB 00:12
(3/5): mongodb-org-server-3.0.6-1.el6.x86_64.rpm | 8.3 MB 00:09
(4/5): mongodb-org-shell-3.0.6-1.el6.x86_64.rpm | 4.1 MB 00:07
(5/5): mongodb-org-tools-3.0.6-1.el6.x86_64.rpm | 31 MB 00:27
————————————————————————————————————————————
Total 800 kB/s | 48 MB 01:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mongodb-org-server-3.0.6-1.el6.x86_64 1/5
Installing : mongodb-org-shell-3.0.6-1.el6.x86_64 2/5
Installing : mongodb-org-mongos-3.0.6-1.el6.x86_64 3/5
Installing : mongodb-org-tools-3.0.6-1.el6.x86_64 4/5
Installing : mongodb-org-3.0.6-1.el6.x86_64 5/5

Installed:
mongodb-org.x86_64 0:3.0.6-1.el6

Dependency Installed:
mongodb-org-mongos.x86_64 0:3.0.6-1.el6 mongodb-org-server.x86_64 0:3.0.6-1.el6 mongodb-org-shell.x86_64 0:3.0.6-1.el6
mongodb-org-tools.x86_64 0:3.0.6-1.el6

Complete!

$ sudo service mongod start
$ mongo

MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type “help”.
For more comprehensive documentation, see

http://docs.mongodb.org/

Questions? Try the support group

http://groups.google.com/group/mongodb-user

Server has startup warnings:
2015-10-29T19:51:37.887+0800 I CONTROL [initandlisten]
2015-10-29T19:51:37.887+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 655360 files. Number of processes should be at least 327680 : 0.5 times number of files.
> exit
bye

$ sudo vi /etc/security/limits.conf

mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000

$ sudo service mongod restart

Stopping mongod: [ OK ]
Starting mongod: [ OK ]

$ mongo

MongoDB shell version: 3.0.6
connecting to: test
> help
db.help() help on db methods
db.mycoll.help() help on collection methods
sh.help() sharding helpers
rs.help() replica set helpers
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce

show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memory, ‘global’ is default
use <db_name> set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell
> show dbs
local 0.078GB
> exit
bye

References:

  1. Install MongoDB on Red Hat Enterprise or CentOS Linux

Data Warehouse For Ever原创文章,转载请注明出处

招聘数据仓库专家/资深工程师

职责描述:
1. 参与淘宝数据仓库架构设计和开发;
2. 参与数据仓库元数据管理系统设计和开发。
职位要求:
1. 精通dw实施方法论和常规etl构架,有整体etl开发经验,深刻理解元数据管理;
2. 数据库:熟悉hadoop、HBase或spark ,熟悉hive sql 的开发。有一定的sql性能调优经验;
3. 熟悉J2EE 框架,有较大项目的java开发经历者优先;
4. 熟练掌握linux常规命令与工具;
5. 性格积极乐观,诚信,有较强的语言表达能力;具备强烈的进取心、求知欲及团队合作精神。

有意者请简历发送至:luojp@163.com


Data Warehouse For Ever原创文章,转载请注明出处

Oracle不同字符集的dblink乱码问题解决办法

因为一个非常操蛋的原因,公司有2个Oracle数据库用了不同的字符集,一个是UTF8,一个是GBK。悲剧的是,两个数据库还必须通过dblink进行一些互访操作。如果字段内容含有中文,则会存在乱码问题。解决方案是通过utl_raw.cast_to_raw和convert两个函数进行字符集转换。

数据库 字符集 表名 指向对方的DBLINK
idata AMERICAN_AMERICA.UTF8 url_upgroup_dimt0 DL_ALIDW_CBUDP
alidw AMERICAN_AMERICA.US7ASCII jobs_category DL_IDATA_CNLOG

1. UTF8通过DBLINK访问GBK

步骤一、在GBK库alidw上创建视图,其中带中文的字段使用utl_raw.cast_to_raw转成RAW编码

create or replace view cbudp.v_jobs_category as
select
id,
utl_raw.cast_to_raw(jobs_category_name) jobs_category_name,
parent_id,
bu_name,
gmt_create,
gmt_modified
from cbudp.jobs_category;

步骤二、在UTF8库idata上创建视图,其中带中文的字段使用Convert进行转码

create or replace view jobs_category as
select
id,
convert(utl_raw.cast_to_varchar2(jobs_category_name),’utf8′,’zhs16gbk’) jobs_category_name,
parent_id,
bu_name,
gmt_create,
gmt_modified
from cbudp.v_jobs_category@dl_alidw_cbudp;

2. GBK通过DBLINK访问UTF8

步骤一、在UTF8库idata上创建视图,其中带中文的字段使用utl_raw.cast_to_raw转成RAW编码

create or replace view cnlog.v_url_upgroup_dimt0 as
select
upgroup_id,
utl_raw.cast_to_raw(upgroup_desc) upgroup_desc,
ins_date
from cnlog.url_upgroup_dimt0;

步骤二、在GBK库alidw上创建视图,其中带中文的字段使用Convert进行转码

create or replace view cnlog.url_upgroup_dimt0 as
select
upgroup_id,
convert(utl_raw.cast_to_varchar2(upgroup_desc),’zhs16gbk’,'utf8′) upgroup_desc,
ins_date
from cnlog.v_url_upgroup_dimt0@dl_idata_cnlog;


Data Warehouse For Ever原创文章,转载请注明出处

阿里巴巴集团商业智能部招聘信息

有意向者请将简历Email发送至:luojp@163.com,并邮件标题注明“商业智能部”及应聘的岗位。

1.资深java开发工程师/专家

职责描述:
1. 淘数据平台 相关数据产品的系统研发;
2. 对现有系统的不足进行分析,找到目前系统的瓶颈,进行改进,提高系统性能;
3. 重点项目的设计方案支持与评审,难点公关。
职位要求:
1. 四年及以上Java EE工作经验
2. JAVA基础知识扎实,熟悉IO,多线程,集合类等基础框架,熟悉缓存,消息,搜索等机制;
3. 精通Java EE相关的主流开源框架,如Spring、iBatis、struts等;
4. 在可扩展、高性能,高并发,高稳定性系统设计,开发和调优方面有实际经验;
5. 熟悉Oracle、MySql等数据库技术,对sql优化有一定的经验;
6. 具有很强的技术研发和创新能力,能有效把握技术发展方向;
7. 思路清晰,较好的沟通能力与技术领导能力;
8. 具有BI产品、数据可视化产品 开发经验者优先考虑。

2.资深前端开发工程师/专家

职责描述:
1. 前端框架的设计与实现;
2. 各业务模块前端代码开发;
3. 平台易用性与用户体验的持续改进;
4. Web前沿技术研究和新技术调研。
职位要求:
1. 精通Web前端技术, 包括HTML/CSS/Javascript等;
2. 精通JS对象编程, 并能熟练使用jquery进行动态网页开发;
3. 有基于Ajax或Jsonp的开发经验;
4. 对 NodeJS/Html5 及其相关技术有一定了解;或者熟悉HTTP协议、Apache模块、cookie等Web技术;
5. 技术视野广阔, 乐于不断学习新知识与新技术, 并能应用到实际工作中;
6. 个性乐观开朗, 逻辑性强, 乐于团队合作。

3.数据仓库开发工程师/专家

职责描述:
1. 参与设计数据仓库架构设计和开发;
2. 参与数据仓库中ETL流程的优化以及数据仓库系统实施过程中ETL相关技术问题的解决。
职位要求:
1. 精通dw实施方法论和常规etl构架,有整体etl开发经验,深刻理解元数据管理;
2. 数据库:熟悉hadoop ,熟悉hive sql 的开发。有一定的sql性能调优经验;
3. 熟悉J2EE 框架,有较大项目的java开发经历者优先;
4. 熟练掌握linux常规命令与工具;
5. 性格积极乐观,诚信,有较强的语言表达能力;具备强烈的进取心、求知欲及团队合作精神。

4.数据分析专家

职责描述:
1. 指导数据分析团队其他人员对多种数据源进行深度诊断性组合分析. 挖掘. 深度分析和建模;
2. 通过专题分析,对业务问题进行深入分析,为公司运营决策. 产品方向. 销售策略提供数据支持,能对关键分析思路进行产品化
3. 领导和牵头数据建模工作,配合数据仓库和数据集市的改造,并推动业务部门的数据化运营;
职位要求:
1. 统计、数学、信息技术或生物统计硕士以上学历;五年以上相关工作经历;
2. 丰富的大项目的经验,有丰富的跨团队、部门的项目资源整合能力,能够独立开展研究项目;
3. 熟悉Oracle等数据库技术,熟练运用SQL;能高效的与技术团队进行沟通;
4. 良好的数据敏感度,能从海量数据提炼核心结果;有丰富的数据分析、挖掘、清洗和建模的经验;
5. 有客户数据模型建立和运营经验、数据化运营经验、数据类产品类规划经验,尤其是互联网相关的优先;
6. 熟练独立编写商业数据分析报告,及时发现和分析其中隐含的变化和问题

5.数据挖掘工程师/专家

职责描述:
1. 从大数据中挖掘用户本质属性,并分析用户行为和个性化需求。
2. 不断挖掘新的用户属性数据并据此产生创新的应用。
3. 应用先进的统计建模. 数据挖掘. 机器学习方法建立数据模型解决实际问题,并研发创新方法以解决常规算法不能解决的问题。
4. 与业务部门沟通合作,将数据模型应用于实际业务。
职位要求:
1. 硕士以上学历,博士优先。统计学. 计算机科学. 数学等相关专业。扎实的统计学. 数据挖掘. 机器学习理论基础。
2. 具有丰富的数据建模实践经验,2年以上相关工作经验。
3. 扎实的编程基础,精通至少一门编程语言。熟悉R语言优先。
4. 熟练掌握Hive SQL。
5. 拥有海量数据处理经验者优先,熟悉Hadoop优先。
6. 具有良好的商业敏感度和优秀的数据分析技能。能够开发创新而实际的分析方法以解决复杂的商业问题。
7. 擅长与商业伙伴的交流沟通,具有优秀的报告讲解能力及沟通能力。
8. 能够积极创新,乐于面对挑战,负责敬业。
9. 优秀的团队合作精神;诚实,勤奋,严谨。

6.数据产品经理

职责描述:
1. 负责阿里巴巴中文站数据仓库对外供网站客户或对内供运营分析使用的数据产品;
2. 与相关团队沟通并落实数据产品;
3. 在运营中推广数据产品,并根据反馈优化数据产品;
4. 负责经营分析平台产品规划和方案计划,组织跨团队协作并推进产品实施, 确保产品不断完善;
6. 管理和分析客户需求,形成需求分析和产品设计方案,推动并解决具体业务问题;
7. 制定经营分析产品运营策略,持续改善产品并帮助客户提升分析效率和产出。
职位要求:
1. 计算机及相关专业大学本科以上学历,3年以上产品设计或分析经验,能够独产承担产品规划工作;
2. 具备良好的数据敏感度和业务视野,能够敏锐的捕获数据价值和产品机会;
3. 熟悉互联网或软件产品整体项目实现过程;
4. 强烈的责任感、优秀的团队协作及沟通能力,积极主动追求产品和客户成功的意愿和热情。

有意向者请将简历Email发送至:luojp@163.com,并邮件标题注明“商业智能部”及应聘的岗位。


Data Warehouse For Ever原创文章,转载请注明出处

Hive Impala Presto, comparison of performance

测试环境如下:

presto-env
其中关于impala和Presto的内存配置:

  • Impala Daemon 内存限制mem_limit为1GB
  • Presto的config.properties 配置文件中task.max-memory=1GB。

另外,由于内存有限,每次测试时Impala和Presto都没有同时开启。
总体测试表明,Presto的性能比Impala稍逊,在数据量巨大、查询比较复杂时,Impala和Presto的性能表现都不怎么样,比Hive也就快了2、3倍的样子
由于生产环境下,除了性能之外,还有并发度、稳定性、适应性等多种因素需要考虑,所以以上测试结果仅供参考。
以下是具体测试结果:

一、1百万条记录,HDFS文件大小600MB时的查询速度

在表记录数不多时,Impala和Presto都表现出比较好的查询性能,其中Impala的查询效率大约为Hive的9~50倍,Presto的查询效率大约为Hive的8~??倍(由于Presto的查询时间只精确到秒,在最简单的select * from xxx limit 5的查询中,显示时间为0秒)。
presto600mb

二、1千万条记录,HDFS文件大小6GB时的查询速度

在表记录数比较多时,Impala的查询效率大约为Hive的7~10倍,Presto的查询效率大约为Hive的4~30倍。
persto6gb

三、1亿条记录,HDFS文件大小60GB时的查询速度

在表记录数特别多时,Impala的查询效率大约为Hive的3~60倍,Presto的查询效率大约为Hive的2~180倍。
presto60gb


Data Warehouse For Ever原创文章,转载请注明出处