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