这一节,我们一起来学习如何数据库的备份和恢复,即导入和导出OushuDB数据。 再导入导出之前,为了保证你有足够的磁盘空间来存储备份文件,我们可以通过如下命令得到数据库大 小: mydb=# SELECT sodddatsize FROM hawq_toolkit.hawq_size_of_database WHERE sodddatname=’mydb’; 如果待备份表是压缩的,这个查询给出的大小是压缩后的大小,如果你的备份是没有压缩的,需要乘上 一个压缩比来计算所需空间。具体的空间占用情况,需要根据大家的实际情况来分析判断。 数据库的备份和恢复 通过gpfdist外部表导入数据 启动gpfdist文件服务器 把需要加载的数据文件放到gpfdist数据目录 定义外部表 加载数据 通过gpfdist外部表导出数据 启动gpfdist文件服务器 准备导出的表 定义外部表 导出数据 hdfs外部表导入数据 把需要加载的数据文件放到hdfs数据目录 定义外部表 加载数据 hdfs外部表导出数据 准备导出的表 定义外部表 导出数据 使用COPY命令导入导出数据
代码语言:javascript复制导出表至控制台
将表导入文件
导出查询结果至文件
使用pg_dump和pg_restore 我们通常使用的导入导出包括:通过外部表(External Tables)进行的高性能并行数据导入和导出,例 如gpfdist外部表或者hdfs外部表。外部表允许用户直接查询OushuDB外部数据,所以他也提供了一种 简单的通过CREATE Table table_name AS SELECT * FROM ext_table并行导入数据到OushuDB内部表 的方法。最常用的并行加载数据到OushuDB的方法是通过基于gpfdist的外部表。gpfdist是一个HTTP服 务器,用户可以在同一机器上,或者不同的机器上启动多个gpfdist实例,从而可以充分利用多台机器, 多个网卡实现大规模并行加载。同时,基于gpfdist的外部表也可以支持数据的导出。 另一种是针对小规模数据可以通过Copy命令或者pg_dump和pg_restore来进行串行导入和导出。COPY 命令可以把单个文件加载到OushuDB,也可以从OushuDB中导出数据到单个文件。 下面我们来分别讲解一下如何通过这些方法来进行数据的导入导出。
通过gpfdist外部表导入数据 下面,我们来通过一个简单的例子来演示如何通过gpfdist导入数据。 使用gpfdist进行数据加载通常有四个步骤,分别是: 启动gpfdist文件服务器 把需要加载的数据文件放到gpfdist数据目录 定义外部表 加载数据