我有一个应用程序,允许人们使用图形用户界面在Bigquery中创建模型,所以我能够通过调用我的nodejs api来创建模型,该模型需要一些训练,我如何查询Bigquery来检查我的模型是否完成了使用我的nodejs Bigquery客户端库的训练,所以我知道模型完成了训练,我可以开始访问质心?
既然您能够训练模型,那么应该为训练创建相应的jobID
。您可以做的是列出所有作业并根据状态对它们进行过滤,在本例中检查正在运行的作业。
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
const jobArr = []
async function listJobs() {
// Lists all jobs in current GCP project.
// List the 5 most recent "running" jobs in reverse chronological order.
// Omit the max_results parameter to list jobs from the past 6 months.
// set allUsers to true to display jobs owned by all users in the project.
const options = {
maxResults: 5,
allUsers: true,
stateFilter: 'running' //Acceptable values are "done", "pending", and "running"
};
const [jobs] = await bigquery.getJobs(options);
console.log('Jobs:');
jobs.forEach(job => {
console.log(job.id)
});
}
关于如何使用此方法的进一步参考,请参阅getJobs()。
出于测试目的,我运行了一个作业,它返回当前正在运行的作业。现在可以使用这个jobID并将其存储在某处,以便通过获取作业的详细信息来监视作业是否完成。
Jobs:
bquxjob_12345_1234456
您可以通过使用bigquery.job()
来进一步检查该作业的详细信息,以获得运行该作业的电子邮件地址、静态数据(创建时间、开始时间等)等详细信息。您可以在Job REST参考中进一步查看您可以从中提取的信息。
获取运行作业的电子邮件地址:
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
const jobArr = []
async function listJobs() {
// Lists all jobs in current GCP project.
// List the 5 most recent "running" jobs in reverse chronological order.
// Omit the max_results parameter to list jobs from the past 6 months.
// set allUsers to true to display jobs owned by all users in the project.
const options = {
maxResults: 5,
allUsers: true,
stateFilter: 'running' //Acceptable values are "done", "pending", and "running"
};
const [jobs] = await bigquery.getJobs(options);
console.log('Jobs:');
jobs.forEach(job => {
jobArr.push(job.id) // pushed the jobID in a list to pass to getjob()
console.log(job.id)
});
getJob(jobArr)
}
async function getJob(jobArr) {
// Get job properties.
for (const element of jobArr) {
const job = bigquery.job(element);
const [jobResult] = await job.get();
console.log("Email:")
console.log(jobResult.metadata.user_email);
// uncomment this part to show start and end time
//console.log("Start Time (UNIX epoch):")
//console.log(jobResult.metadata.statistics.startTime);
//console.log("End Time (UNIX epoch):")
//console.log(jobResult.metadata.statistics.endTime);
}
}
listJobs()
关于如何使用此方法的进一步参考,请参阅job()。
输出:
Jobs:
bquxjob_12345_1234456
Email:
test_email@test.com