2016-06-09 1 views
0

Я пытаюсь загрузить локальный Avro на Google большой запрос с использованием nodejsКак загрузить локальный Avro на Google большой запрос с использованием Nodejs

var gcloud = require('gcloud')({ 
    keyFilename: './config/keyfile.json', 
    projectId: 'my-project' 
}); 

var bigquery = gcloud.bigquery(); 


var schoolsDataset = bigquery.dataset('my_dataset'); 
var schoolsTable = schoolsDataset.table('person_data'); 


schoolsTable.import('./examples/yob1900.avro', function(err, job) { 
console.log(job) 
console.log(err) 
}); 

Я получаю сообщение об ошибке: followin

{ [ApiError: No schema specified on job or table.] 
    code: 400, 
    errors: 
    [ { domain: 'global', 
     reason: 'invalid', 
     message: 'No schema specified on job or table.' } ], 
    response: undefined, 
    message: 'No schema specified on job or table.' } 

как добавить схему? (файл 'yob1900' был загружен из BigQuery документации https://cloud.google.com/bigquery/loading-data#loading_json_files)

ответ

0

вот ответ:

var gcloud = require('gcloud')({ 
    keyFilename: '../config/keyfile.json', 
    projectId: 'my-project' 
}); 

var request = require('request'); 

var bigquery = gcloud.bigquery(); 


var dataset = bigquery.dataset('my_dataset'); 
var table = dataset.table('my_table'); 

var metadata = { 
    sourceFormat: 'AVRO' 
}; 

fs = require('fs'); 

fs.createReadStream('./yob1900.avro') 
    .pipe(table.createWriteStream(metadata)) 
    .on('complete', function(job) { 
    job 
     .on('error', console.log) 
     .on('complete', function(metadata) { 
     console.log('job completed', metadata); 
     }); 
    });