restoreTable

语法

restoreTable(backupDir, dbPath, tableName, [newDBPath], [newTableName])

参数

backupDir 字符串,表示存放备份数据的目录。

dbPath 字符串,表示已备份的分布式数据库的路径。

tableName 字符串,表示表名。

newDBPath 字符串,表示新数据库的名称。如果没有指定,默认值为 dbPath

newTableName 字符串,表示新表的名称。如果没有指定,默认值为 tableName

详情

恢复备份的表到数据库。返回一个表,包含数据库名称和表名称。调用该函数可以简化代码,方便用户一次性恢复数据库的一张表。

该函数与 migrate 类似,都可恢复整个数据库下的整个表,区别见表相关内容。

注意事项:

该函数仅支持恢复以拷贝文件方式(即 backup 时指定 dbPath 参数)进行的备份。

恢复时需要确保备份数据与待恢复数据库的引擎类型(engine)一致,且 partitionScheme(VALUE 除外)也保持一致。 当采用 VALUE 分区时,须保证备份数据中的分区方案是待恢复数据库的分区方案的子集。例如:备份文件的分区方案是 database("dfs://xxx", VALUE, 2017.08.07..2017.08.11), 则待恢复数据库的 VALUE 分区范围必须不小于 2017.08.07..2017.08.11。

例子

dbName = "dfs://compoDB2"
n=1000
ID=rand("a"+string(1..10), n)
dates=2017.08.07..2017.08.11
date=rand(dates, n)
x=rand(10, n)
t=table(ID, date, x)
db1 = database(, VALUE, 2017.08.07..2017.08.11)
db2 = database(, HASH,[INT, 20])
if(existsDatabase(dbName)){
     dropDatabase(dbName)
}
db = database(dbName, COMPO,[ db1,db2])

// 创建2个表
pt1 = db.createPartitionedTable(t, `pt1, `date`x).append!(t)
pt2 = db.createPartitionedTable(t, `pt2, `date`x).append!(t)

backupDB(backupDir, dbName)

restoreTable(backupDir,"dfs://compoDB2",`pt1)

输出返回:

dbName tableName
dfs://compoDB2 pt1

相关函数:restore, restoreDB, migrate, backup, backupDB, backupTable