Большой набор данных с несовместимым сравнением данных в разных базах данных - PullRequest
0 голосов
/ 06 февраля 2019

У нас запущен конвейер синхронизации между MySQL и Big Query, я хочу сравнить некоторые критические таблицы, но они довольно большие в миллион строк и до 50+ столбцов в каждой.Я попытался использовать дамп CSV и сравнить таким образом, но есть также проблема несовместимости типов данных (то есть представление даты)

Как получить сравнение больших данных?

1 Ответ

0 голосов
/ 07 февраля 2019

Теперь об использовании 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
...