MapReduce

数据库交易回测系列二:多因子Alpha策略回测

流过昼夜 提交于 2020-12-14 16:57:24
本系列文章将会介绍如何使用DolphinDB优雅而高效的实现量化交易策略回测。本文将介绍在华尔街广泛应用的多因子Alpha策略的回测。多因子模型是量化交易选股中最重要的一类模型,基本思路是找到某些和回报率最相关的指标,并根据这些指标,构建股票投资组合(做多正相关的股票,做空负相关的股票)。多因子模型中,单独一个因子的个股权重一般实现多空均衡(市场中性),没有暴露市场风险的头寸(beta为0,所以称之为alpha策略),能实现绝对收益。多个因子之间相互正交,方便策略配置,实现回报和风险的最优控制。另外,相比于套利策略(通常可以实现更高的sharpe ratio,但是scale不好),多因子alpha策略有很好的scale,可以配置大量的资金。多因子Alpha策略在对冲基金中的使用非常普遍。 1. 生成因子 本文的重点是实现多因子Alpha策略的回测框架。因子不是重点,这部分通常由金融工程师或策略分析师来完成。为了方便大家理解,文章以动量因子、beta因子、规模因子和波动率因子4个常用的风险因子为例,介绍如何在 DolphinDB database 中实现多因子回测。 输入数据表inData包含6个字段:sym (股票代码), date(日期), close (收盘价), RET(日回报), MV(市值), VOL(交易量) def genSignals(inData){

Issue with org.apache.hadoop.mapreduce imports in Apache Hadoop 2.2

隐身守侯 提交于 2020-12-13 09:38:46
问题 I recently installed the new Hadoop 2.2. I had previously written a simple Word Count MapReduce program which used to work with ease on CDH4. But now, I have problems with all org.apache.hadoop.mapreduce imports. Can someone tell me which jar exactly to export to fix these imports? The code is as follows just in case someone needs to point out changes I need to make to make sure it runs in Hadoop 2.2. import java.io.IOException; import java.lang.InterruptedException; import java.util.regex

Issue with org.apache.hadoop.mapreduce imports in Apache Hadoop 2.2

戏子无情 提交于 2020-12-13 09:38:32
问题 I recently installed the new Hadoop 2.2. I had previously written a simple Word Count MapReduce program which used to work with ease on CDH4. But now, I have problems with all org.apache.hadoop.mapreduce imports. Can someone tell me which jar exactly to export to fix these imports? The code is as follows just in case someone needs to point out changes I need to make to make sure it runs in Hadoop 2.2. import java.io.IOException; import java.lang.InterruptedException; import java.util.regex

什么是spark(六)Spark中的对象

吃可爱长大的小学妹 提交于 2020-12-12 15:52:43
Spark中的对象   Spark的Conf,极简化的场景,可以设置一个空conf给sparkContext,在执行spark-submit的时候,系统会默认给sparkContext赋一个SparkConf;   Application是顶级的,每个spark-submit就是一个application;官网说明:User program built on Spark. Consists of a driver program and executors on the cluster.   每个action(函数)是一个job,action是两个job的分界点;注意,每个action都是会发生一次shuffle,action就相当于map-reduce里面的reduce,会产生一次汇总,也即shuffle;所以可以理解action是一次大的shuffle,这个对应下面的stage,stage也是以shuffle,只不过这个shuffle可能并不是reduce,只是数据因为partition,groupby等导致数据物理位置迁移(重组)等操作,发生了数据转移而已;所以讲,job和stage都是以shuffle为分界点,只不过类型不同而已;官网说明:A parallel computation consisting of multiple tasks that gets

Spark(十一)Spark分区

≡放荡痞女 提交于 2020-12-12 15:51:58
一、分区的概念   分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务的个数,也是由RDD(准确来说是作业最后一个RDD)的分区数决定。 二、为什么要进行分区   数据分区,在分布式集群里,网络通信的代价很大,减少网络传输可以极大提升性能。mapreduce框架的性能开支主要在io和网络传输,io因为要大量读写文件,它是不可避免的,但是网络传输是可以避免的,把大文件压缩变小文件, 从而减少网络传输,但是增加了cpu的计算负载。   Spark 里面io也是不可避免的,但是网络传输spark里面进行了优化:   Spark把rdd进行分区(分片),放在集群上并行计算。同一个rdd分片100个,10个节点,平均一个节点10个分区,当进行sum型的计算的时候,先进行每个分区的sum,然后把sum值shuffle传输到主程序进行全局sum,所以进行sum型计算对网络传输非常小。但对于进行join型的计算的时候,需要把数据本身进行shuffle,网络开销很大。 spark是如何优化这个问题的呢?   Spark把key-value rdd通过key的hashcode进行分区,而且保证相同的key存储在同一个节点上,这样对改rdd进行key聚合时

什么是spark(一) 分区以及和MR的区别

久未见 提交于 2020-12-12 15:29:04
  什么是spark,是一个 分布式计算平台,或者说是分布式计算引擎 ,他的职责就是将指定的数据读入到各个node的内存中,然后计算。所以spark是具有泛化性质的, 只要数据源是可读入的,读到内存里面之后,处理就和数据源没有关系了 ,你是HBASE,kudu,还是parquet都无所谓了。   什么是RDD,弹性分布式数据集,其实RDD是一个抽象概念,因为RDD本身不包含数据, 它只包含数据描述以及对于数据的算法 ,比如一个sparkSQL返回的RDD其实就是一个对数据的描述,告诉各个节点的executor要处理那些数据,那么map就是算法,map里面的函数体就是算法,所以map又叫做算子。   什么是spark分区,“ 需要把相同 key 的元素聚集到同一个 partition 下,所以造成了数据在内存中的重新分布,即 shuffle 操作 ”,简单讲就是设置数据分布, 将相同key的数据分布到同一台机器 ;为什么要分区?首先明白分区的目的好处就是:   1)减少了网络开销;   2)提高并行计算度;   前者的实现是通过将join算子和hive参数放置到同一台机器,然后让发起join的表数据推送到spark的分区节点进行运算;至于后者,每个分区都有独立的线程(每个线程执行的逻辑称之为Task);可以保持彼此独立,并行进行计算,这个也是spark的机制所在。  

应对万亿数据上亿并发!字节跳动的图数据库研发实践

穿精又带淫゛_ 提交于 2020-12-11 10:21:36
作者:字节跳动技术团队 技术架构团队来源:字节跳动技术团队 【责任编辑:未丽燕 TEL:(010)68476606】 https://database.51cto.com/art/202012/633379.htm 一、图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: 用户信息、用户和用户的关系(关注、好友等); 内容(视频、文章、广告等); 用户和内容的联系(点赞、评论、转发、点击广告等)。 这三种数据关联在一起,形成图状(Graph)结构数据。 为了满足 social graph 的在线增删改查场景,字节跳动自研了分布式图存储系统——ByteGraph。针对上述图状结构数据,ByteGraph 支持有向属性图数据模型,支持 Gremlin 查询语言,支持灵活丰富的写入和查询接口,读写吞吐可扩展到千万 QPS,延迟毫秒级。目前,ByteGraph 支持了头条、抖音、 TikTok、西瓜、火山等几乎字节跳动全部产品线,遍布全球机房。在这篇文章中,将从适用场景、内部架构、关键问题分析几个方面作深入介绍。 ByteGraph 主要用于在线 OLTP 场景,而在离线场景下,图数据的分析和计算需求也逐渐显现。2019 年年初,Gartner 数据与分析峰会上将图列为 2019 年十大数据和分析趋势之一,预计全球图分析应用将以每年 100% 的速度迅猛增长

大数据职位体系

自闭症网瘾萝莉.ら 提交于 2020-12-10 07:52:42
大数据职位体系 我们接触过很多家互联网企业,目前最为普遍也是职位需要比较大的莫过于大数据方向的岗位,以下是我通过各位技术前辈对于大数据方向各个职位的整理,方便我们猎头朋友更好地理解职位需求,同时对大数据方向感兴趣的同学也可以参考,以下是详细的文档,其中脑图我也整理整理了一份,供大家参考,另外关于技术方向是不断进化和演变的过程,希望大家共同补充和提出不同的见解。 1.大数据涉及职位从技术趋势角度来 大数据系统研发类人才对应的职位为大数据系统研发工程师 a-大数据应用开发类人才对应的职位为大数据应用开发工程师 c-大数据分析类人才对于的职位为大数据分析师 2.企业方向划分 a-产品市场分析---通过算法来测试新产品的有效性,\n是一个相对较新的领域 b-安全和风险分析---数据科学家们知道需要收集哪些数据、\n如何进行快速分析,并最终通过分析\n信息来有效遏制网络入侵或抓住网络罪犯。 c-商业智能 3.热门岗位 a-ETL研发: >ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。 >有不同的数据类型 随着数据种类的不断增加,企业对数据整合专业人才的需求越来越旺盛

干货丨大数据分析语言DolphinDB脚本语言概述

爷,独闯天下 提交于 2020-12-09 16:40:05
开发大数据应用,不仅需要能支撑海量数据的分布式数据库,能高效利用多核多节点的分布式计算框架,更需要一门能与分布式数据库和分布式计算有机融合、高性能易扩展、表达能力强、满足快速开发和建模需要的编程语言。DolphinDB从流行的Python和SQL语言汲取了灵感,设计了大数据处理脚本语言。 提到数据库语言,我们很容易想到标准的SQL语言。不同于标准的SQL,DolphinDB编程语言功能齐全,表达能力非常强大,完美支持命令式编程、向量化编程、函数话编程、SQL编程、远程过程调用编程(RPC)和元编程等多种编程范式。DolphinDB编程语言的语法和表达习惯与Python和SQL非常相似,只要对Python和SQL有一定的了解,就能轻松掌握。相对而言,掌握内存时序数据库kdb+的q语言难度要大得多。 DolphinDB的编程语言能够满足数据科学家快速开发和建模的需求。DolphinDB语言简洁灵活,表达能力强,大大提高了数据科学家的开发效率。DolphinDB支持向量化计算和分布式计算,具有极快的运行速度。下面将详细介绍DolphinDB编程语言的独特之处。 1.命令式编程 与主流的脚本语言Python、JS等,还有强类型语言C、C++、Java等一样,DolphinDB也支持命令式编程。命令式编程是指通过执行一条一条的语句,实现最终目标

Greenplum数据库简介

≯℡__Kan透↙ 提交于 2020-12-06 19:53:45
Greenplum 是 2002 年开始成立研发团队的,核心技术团队成员来自各个顶级数据库公司和大规模并行计算公司的资深软件架构师,例如: Oracle, Teradata, Tandem, Microsoft SQL Server, Informix 。 Greenplum 数据库软件是业内首创的无共享、大规模并行处理( massively parallel processing (MPP) )的数据库软件产品,它包含大规模并行计算技术和数据库技术最新的研发成果:包括无共享 /MPP ,按列存储数据库,数据库内压缩, MapReduce ,永不停机扩容,多级容错等等。该数据库软件被业界认可为扩展能力最大的分析型( OLAP )数据库软件。已有 500 多家世界级重大客户采用该软件,例如: NYSE,NASDAQ,FINRA,AIG , AMEX,CIA ,德意志银行,美国联邦储备委员会,支付宝, NTT-DoCoMo,T-Mobile,Skype , WalMart ,中国联通,太平洋保险等。 这些客户中大多数 Greenplum 数据仓库所管理的数据量都超过 100TB ,其中,全球最大的有 6500TB ,中国最大的有 1000TB 。 每一天,全球有数亿级的用户在直接、间接用到 Greenplum 发明的数据库平台。 Greenplum 分布式数据仓库软件特性介绍