У меня неожиданное поведение при загрузке данных в BigQuery
сразу после создания схемы.
Я использую Node API для вставки данных с BigQuery
потоковым API.
Для сброса удаляемых данныхи создавать таблицы перед загрузкой любых данных.
Моя проблема: в первый раз все работает нормально, но если я выполню его снова, это не удастся.
Процесс всегда удаляет и создает схему таблицы, но не вставляет данные, пока я не ждумомент, чтобы выполнить это снова.
Этот код воспроизводит регистр:
async function loadDataIntoBigquery() {
const {BigQuery} = require('@google-cloud/bigquery')
const tableName = "users"
const dataset = "data_analisis"
const schemaUsers = "name:string,date:string,type:string"
const userData = [{name: "John", date: "20/08/93", type: "reader"}, {
name: "Marie",
date: "20/08/90",
type: "owner"
}]
try {
const bigquery = new BigQuery()
await bigquery.createDataset(dataset).then(err => console.log("dataset created successfully")).catch(err => {
console.log("warn: maybe the dataset already exists")
})
await bigquery.dataset(dataset).table(tableName).delete().then(err => console.log("table deleted successfully")).catch((err) => {
console.log("Error: maybe the table does not exist")
})
await bigquery.dataset(dataset).createTable(tableName, {schema: schemaUsers}).then(() => console.log("table created successfully")).catch(err => console.log("Error: maybe the table already exists"))
await bigquery.dataset(dataset).table(tableName).insert(userData).then((data) => console.log("Ok inserted ", data)).catch(err => console.log("Error: can't insert "))
} catch (err) {
console.log("err", err)
}
}
, чтобы проверить, что данные были вставлены. Я использую этот запрос
select * from `data_analisis.users`