Пытаясь запустить большой скрипт, около 700 000 записей синхронизируются из одного источника в базу данных Azure.
В настоящее время я использую Sequelize для достижения этой цели.При запуске этого сценария требуется около 1 минуты для синхронизации 400 записей, что слишком медленно.
Я надеялся использовать функцию bulkCreate, но использование метода updateOnDuplicate
несовместимо с mssql
https://sequelize.readthedocs.io/en/latest/api/model/#bulkcreaterecords-options-promisearrayinstance
Как я до сих пор этого добиваюсь:
Модель
employees: this.sequelize.define(
'employee',
{
_id: {
type: Sequelize.STRING(24),
primaryKey: true,
},
title: Sequelize.STRING,
initials: Sequelize.STRING,
surname: Sequelize.STRING,
forename: Sequelize.STRING,
middle_names: Sequelize.STRING,
legal_surname: Sequelize.STRING,
legal_forename: Sequelize.STRING,
gender: Sequelize.STRING(10),
date_of_birth_date: Sequelize.DATE
{
timestamps: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
indexes: [],
}
),
Код синхронизации:
async saveSQLResults(model: string, data: any) {
for(const item of data) {
const dbItem: any = await this.SQLSchemas[model]
.findOne({ where: { _id: item._id } });
if(dbItem) {
await dbItem.update(item);
} else {
await this.SQLSchemas[model].create(item);
}
}
}