百度数据工厂Pingo

    核心概念

    表管理

    • 命名空间(namespace):表管理对象中的最高级别节点,命名空间的子节点可以是命名空间或者数据库,不能是表。
    • 数据库(database):表管理对象中的中间层级节点,数据库必须是命名空间的子节点,数据库的子节点只能是表。
    • 表(table):表管理对象中的叶子节点,是一份结构化数据的描述。
    • 分片(partition):表中数据的切分方式,一个表可以包含多个分片,分片主要用于查询时的剪枝。
    • 切片(slice):切片是表中一段时间内的数据描述抽象。一个切片可以包含一个或多个分片。切片主要用于通知下游指定时间范围的数据准备就绪。
    • inputformat:向表中写数据时,引擎所使用的数据格式。
    • outputformat:从表中读数据时,引擎所认为的数据存储格式。
    • serdeinfo:对每一行数据所使用的序列化和反序列化格式。
    • 周期映射格式:分片字段与切片周期的映射关系

    文件管理

    Alluxio 是源自UC Berkeley AMPLab的研究项目Tachyon。在Pingo中,基于Alluxio实现了一个文件管理层服务PFS。使用Alluxio的挂载能力,PFS可以轻松对接各种分布式文件系统,比如HDFS、S3、BOS甚至Linux单机文件。

    • 挂载:类似于电脑可以挂载移动硬盘、通过samba挂载网络文件。文件管理系统PFS可以挂载常见的(分布式)文件系统,该文件系统将被挂载到一个指定的文件夹下,在PFS整个目录树的管理范围之内。
    • 基于继承的ACL权限:在PFS中不但支持了传统的Unix权限模型,我们还开发了一套新的ACL权限模型。就是子目录会自动继承父目录上的ACL权限,这样针对父目录赋权以后,就会自动获得所有子目录的权限。

    传输管理

    • 数据源:指数据传输的来源,数据源定义了连接到实际数据库、文件系统等存储介质的一条路径,用于管理所传输数据的连接信息。
    • 传输任务:每个新建的传输我们称为一个传输任务(对应一个transid),在平台建的批量传输与在调度平台每次调度产生的任务都会产生一个这样的传输任务。
    • 传输节点:一个任务可以被切分成很多partition进行分片传输,每个传输分片在传输系统中我们成为一个节点(node),多个节点传输的结果汇总成最后的传输数据。

    交互分析

    • 笔记(Note): 指的是交互分析的一个工作文档。
    • Notebook:指的是交互分析的一个运行环境,对应一个Note会有一个Notebook。
    • 服务(Kernel): 交互分析Notebook提供的服务类型,每个笔记创建时需要指定服务,直接写代码即可使用该服务
    • 代码块(Cell): 指的是笔记中的一个代码输入框,在代码块中直接写代码可以使用当前note的服务,也可以通过%%xxx方式添加其他服务的代码。
    • 队列(Queue): 指的是笔记运行时所在的Yarn队列,需要用户选择需要的队列来执行,切换队列后执行代码会重启Applicatio。

    批量作业

    • 作业(job): 指一个静态的任务描述,比如一个Spark任务。
    • 作业实例(job instance): 执行单元,是一个作业在运行时的一个实例。
    • 作业组(graph): 一组逻辑上相互关联的作业,以及作业之间的依赖关系(DAG图),构成一个作业组。
    • 作业组实例(graph instance): 调度单元,是作业组在被触发后的生成的实例。作业组实例由作业实例以及作业实例之间的依赖关系组成。
    • 插件(plugin):可以描述一类作业的作业模板。创建新作业页面每个类型就是一个插件(通用类型除外),比如Spark插件,可以描述所有spark类型的作业。用户只需要初始化spark插件的模板数据,就可以形成一个spark类型的作业。
    • 包(package): 作业运行时所需要的环境(配置文件,依赖库,脚本文件,运行工具等)的管理单元,称之为包。
    • 包服务(package service): biglog提供的包服务用于管理用户作业所依赖的包,并在在作业实例运行时根据作业所依赖的包初始化运行环境。
    上一篇
    应用场景
    下一篇
    产品定价