我们在MySQL和正在运行的Big Query之间建立了同步管道, 我想比较一些关键表,但它们在百万行中很大,每行最多50列以上。 我尝试使用CSV转储,并进行了比较,但是还存在数据类型不兼容的问题(即日期表示)
如何进行大数据比较?
答案 0 :(得分:0)
现在要使用endly来比较任何数据库, 其中,指令部分允许指定索引表达式(唯一列组合),所需的日期格式和其他比较选项。
您可以简单地使用简单的工作流程名称(如下所示)运行。
endly -r=compare
@ compare.yaml
pipeline:
register:
mysqldb:
action: dsunit:register
datastore: myMySQLdataset
config:
driverName: mysql
descriptor: '[username]:[password]@tcp(127.0.0.1:3306)/[dbname]?parseTime=true'
parameters:
dbname: myMySQLdataset
username: myUsername
password: myPassowrd
bigquerydb:
action: dsunit:register
datastore: myBQdataset
config:
driverName: bigquery
parameters:
datasetId: myBQdataset
compare:
action: dsunit:compare
maxRowDiscrepancy: 1000000
directives:
"@indexBy@": id,otherUniqueColumn
"@numericPrecisionPoint@": 7
"@coalesceWithZero@": true
"@caseSensitive@": false
"@timeFormat@myDateColumn": 'yyyy-MM-dd'
source1:
datastore: myMySQLdataset
SQL: SELECT *
FROM table1
source2:
datastore: myBQdataset
SQL: SELECT *
FROM table1