checkBackup

Syntax

checkBackup(backupDir, dbPath, [tableName], [partition])

Arguments

backupDir is a string indicating the directory to save the backup.

dbPath is a string indicating the database path.

tableName is a string indicating the table name. If tableName is unspecified,

partition is a string indicating the relative path of the backup partitions. Use “?” as a single wildcard and “%” as a wildcard that can match zero or more characters.

  • For a certain partition, specify the relative path or “%/” + “partition name”. For example, for the “20170810/50_100” partition under “dfs://compoDB”, specify “/compoDB/20170807/0_50” or “%/20170807/0_50” as partition path.

  • For all the partitions: specify “%”.

Details

Check the data integrity of the backup files. Return an empty table if all backup files are complete and accurate; Otherwise return the information of abnormal backup files. You can set force=true for function backup to enable force backup to restore the corrupt backup partitions.

Examples

$ 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])

//create 2 tables
$ pt1 = db.createPartitionedTable(t, `pt1, `date`x).append!(t)
$ pt2 = db.createPartitionedTable(t, `pt2, `date`x).append!(t)

//back up pt1 with SQL statement
$ backup(backupDir=backupDir1, sqlObj=<select * from pt1>, parallel=true)
//back up pt2 by copying files
$ backup(backupDir=backupDir2, dbName, parallel=true, tableName=`pt2)

//check data integrity
$ checkBackup(backupDir=backupDir2, dbPath=dbName, tableName="pt2")  //return an empty table
$ checkBackup(backupDir=backupDir1, dbPath=dbName, tableName="pt1")  //return the corrupted chunk information

dbName

tableName

chunkPath

chunkID

partitionPath

dfs://compoDB2 pt1

/compoDB2/20170807/Key2/9

4ae71414-8bfe-4283-b04c-b2e48e90be08

/20170807/Key2

In the above example, there is a corrupt chunk file of pt1. We can restore the file by setting force=true to back up the table again.

$ backup(backupDir1, <select * from pt1>,force=true, parallel=true)
$ checkBackup(backupDir=backupDir1, dbPath=dbName, tableName="pt1")  // return an empty table