云服务器内容精选

  • 相关概念 数据源文件:存储有数据的TEXT、CSV、ORC、PARQUET、CARBONDATA、JSON文件。文件中保存的是待并行导入数据库的数据。 OBS:对象存储服务,是一种可存储文档、图片、影音视频等非结构化数据的云存储服务。向GaussDB(DWS)并行导入数据时,数据对象放置在OBS服务器上。 桶(Bucket):对OBS中的一个存储空间的形象称呼,是存储对象的容器。 对象存储是一种非常扁平化的存储方式,桶中存储的对象都在同一个逻辑层级,去除了文件系统中的多层级树形目录结构。 在OBS中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与其他用户创建的桶名称相同。每个桶在创建时都会生成默认的桶ACL(Access Control List),桶ACL列表的每项包含了对被授权用户授予什么样的权限,如读取权限、写入权限、完全控制权限等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。 一个用户最多可创建100个桶,但每个桶中存放的总数据容量和对象/文件数量没有限制。 对象:是存储在OBS中的基本数据单位。用户上传的数据以对象的形式存储在OBS的桶中。对象的属性包括名称Key,Metadata,Data。 通常,将对象等同于文件来进行管理,但是由于OBS是一种对象存储服务,并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据,OBS提供了一种方式模拟文件夹。通过在对象的名称中增加“/”,如tpcds1000/stock.csv,tpcds1000可以等同于文件夹,stock.csv就可以等同于文件名,而对象名称(key)仍然是tpcds1000/stock.csv、对象的内容就是stock.csv数据文件的内容。 Key:对象的名称(键),为经过UTF-8编码的长度大于0且不超过1024的字符序列,一个桶里的每个对象必须拥有唯一的对象键值。用户可使用桶名+对象名来存储和获取对应的对象。 Metadata:对象元数据,用来描述对象的信息。元数据又可分为系统元数据和用户元数据。这些元数据以键值对(Key-value)的形式随http头域一起上传到OBS系统。 系统元数据由OBS系统产生,在处理对象数据时使用。系统元数据包括:Date, Content-length, last-modify, Content-MD5等。 用户元数据由用户上传对象时指定,是用户自己对对象的一些描述信息。 Data:对象的数据内容,OBS对于数据的内容是无感知的,即认为对象内的数据为无状态的二进制数据。 数据库普通表:数据库中的普通表,数据源文件中的数据最终并行导入到这些表中存储,包括行存表、列存表。 外表:用于识别数据源文件中的数据。外表中保存了数据源文件的位置、文件格式、编码格式、数据间的分隔符等信息。
  • 导入流程图 图2 并行导入流程 表1 流程说明 流程 说明 子任务 上传数据至OBS。 在OBS服务器上规划存储路径,并上传数据文件。 详细请参见上传数据到OBS。 - 创建OBS外表。 创建外表用于识别OBS服务器上的数据源文件。在OBS外表中保存了数据源在OBS服务器上的桶名、对象名,文件格式、存放位置、编码格式、数据间的分隔符等信息。 详细请参见创建OBS外表。 - 执行导入数据。 在创建好外表后,通过INSERT语句,将数据快速、高效地导入到目标表中。 详细请参见执行导入数据。 - 处理错误表。 在数据并行导入发生错误时,请根据错误信息,处理错误表,以保证导入数据的完整性。 说明: 使用外表从OBS并行导入数据中方式二的导入方式,不支持错误表。 - 优化查询效率。 导入数据后,通过ANALYZE语句生成表统计信息。ANALYZE语句会将统计结果自动存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。 -