正文
1.IndexR 为上层计算引擎提供数据,相当于对 IO 层做了整体的性能加速,提升了系统的分析能力。
2.IndexR 为下层数据存储解决了在线分析和数据调用的问题,同时还能解决实时数据和历史数据的分割问题。
-
IndexR 能实时拉取 Kafka 的数据流,并打包上传到 HDFS。整个数据层对于计算层是透明的。IndexR 通过结合实时数据和历史数据,保证了数据分析的实时性。
-
数据存放于 HDFS,不同的分析工具可同时分析同一份数据。
-
利用 Hadoop、Drill、Spark 等的分布式、高可用、可扩展特点,解决海量数据场景的分析问题。
IndexR 从开源至今,历经不同团队从调研、测试到最后部署生产环境的实践,已获得了国内外数十家团队的认可(如尼尔森、佰安信息等),包括广告、电商、AI 等领域的大型互联网公司和创业团队以及政府、咨询、物流等拥有超大数据集且对数据质量有极高要求的行业。其中:尼尔森(Nielsen-CCData)使用 IndexR 产品服务全面支撑了其六大产品线的核心业务,应对海量数据的在线监测、治理、分析以及复杂多变的智能化数据产品输出,专注于全媒体与受众研究业务。佰安信息则使用 IndexR 产品服务进行公共信息的明细查询与统计分析,单表数据量近 2 千亿,每日入库近 4 亿条数据。
下面列举几种常见的使用场景:
-
替换 Parquet 等存储格式:利用 IndexR 的性能和索引优势,加速查询系统。
-
替换 Druid 等分布式系统:利用 IndexR 实现实时入库,进行多维数据分析。
-
替换 MySQL、Oracle 等业务数据库,或 ES、Solr 等搜索引擎:把统计分析工作移交到 IndexR 系统,通过模块分离,提高服务能力。
-
结合其他开源工具(如 Drill,搭建 OLAP 查询系统):IndexR 基于 Hadoop 生态的特点及支持实时入库、高效查询的优势,能够满足当前或未来对于 OLAP 系统的实时分析海量数据、线性扩展、高可用、多功能、业务灵活等多种需求。数据分析不再被纯预计算的局限性所困扰,且在线分析和离线分析可以使用同一份数据,提高了数据利用率并降低了成本。
-
作为数据仓库的存储格式:利用 IndexR 存放海量历史数据,同时支持海量数据的实时入库。数据使用方式包括明细查询、在原始数据上做分析查询和定期的预处理脚本。
IndexR 具有六大特性:自带索引、灵活性强、实时性高、速度快、省资源、预聚合。
IndexR 包含三层索引,即粗糙集索引(Rough Set Index)、内索引(Inner Index)和可选的外索引(Outer Index)。
目前的 On Hadoop 存储格式如 ORC、Parquet 等都没有真正的索引,只靠分区和利用一些简单的统计特征如最大最小值等大概满足离线分析的需求。在服务在线业务时 On Hadoop 就显得非常力不从心,需要从磁盘中读取大量无用数据。事实上并不是每次查询都需要获取全部数据,特别是 Ad-hoc 类型的查询。而 IndexR 通过多层索引的设计,不仅极大地提高了 IO 效率,只读取部分有效数据,而且把索引的额外开销降到了最低。