Tag: 谷歌云平台

BigQuery Node.js api创build外部表

我正尝试使用node.js API从Google云端函数创build外部表格。 该function将从GCS桶更改中触发。 我可以创build一个本地表,但不能创build一个外部表。 在这里用于导入的node.js api中,configuration.load元数据没有设置来将其指定为外部表。 这里是我的代码本地表创build到现在。 我的问题是“如何使用Node.js Api为GCS存储桶创build外部表” const projectId = "N" const bigquery = BigQuery({ projectId: projectId }); const storage = Storage({ projectId: projectId }); const dataset = bigquery.dataset("dataset"); const table = dataset.table("test_data"); const bucket = storage.bucket("my-bucket"); const file = bucket.file("2017/03/02/*"); let job; // Imports data from a GCS file into a table […]

节点BigQuery apiResponse总是未定义的

我正在使用Google Cloud Node库的BigQuery API https://googlecloudplatform.github.io/google-cloud-node/#/docs/bigquery/0.9.0/bigquery 根据官方文档,“query”方法的callback函数应该返回一个名为apiResponse的对象。 但是,我总是获得价值 undefined 我试图直接查询数据集和bigquery对象,但我有相同的响应。 我需要这些信息才能获得执行查询的成本。

Google云端存储忽略分隔符

我试图从谷歌云存储检索JSON文件。 JSON文件与其对应的audio文件存储在相同的文件夹中,如下所示: bucket folder1 audio.wav audio.json folder2 audio.wav audio.json 我正在使用nodejs,并调用云存储,如下所示: bucket.getFiles({ delimeter: 'audio' //should be preventing loading of audio files but it isnt }).then((data) => { console.log(data) }).catch((error) => { console.log(error) }) 我有一种感觉,这可能与Google如何处理文件夹有关,但我不确定。 这里是如何存储文件的第一个地方: const storage = require('@google-cloud/storage')(); const filename = `recordings/${path.parse(req.body.RecordingUrl).name}/audio.wav`; const file = storage .bucket(config.RESULTS_BUCKET) .file(filename) 这会导致某种types的string将audio文件分配一个唯一的ID作为文件夹名称,然后附加/audio.wav ,并以某种方式将云存储识别为文件夹。 只是一个猜测,但不知道如何解决,如果是这样的话。 任何人都知道我可能做错了什么?

通过父键查询实体

我正在寻找通过父键查询数据存储实体(即,返回键是在父键下的1path段的实体)。 我知道我可以使用HAS_ANCESTOR查询来获得父级和所有的后代,但我只想要直接的孩子。 我希望有一个__parent__属性可用于此目的,但是这似乎不起作用: {propertyFilter: { property: {name: '__parent__'}, op: 'EQUAL', value: {keyValue: { partitionId: {projectId: 'myproject'}, path: [{kind: 'row', name: 'parent'}] }} } 我知道我也可以在每个实体中logging一个深度属性来达到这个目的,但是如果Datastore本身使用密钥本身支持这样的查询,那么就不会那样做。

云数据存储和Node.js:无法获取实体

我正在使用App Engine灵活的环境和Node.js,并试图在Cloud Datastore中存储和检索实体。 以下代码成功创build一个新的Event实体: /* Create event */ router.post('/', function(req, res, next) { const eventKey = datastore.key('Event'); datastore.save({ key: eventKey, data: req.body }) .then(() => { console.log('New event created'); res.json({id: eventKey.id}); }) .catch((err) => { next(err); }); }); 但是,当我提供以前返回的id时,以下返回一个空数组: /* Get an event */ router.get('/:id', function(req, res, next) { console.log(req.params.id); var eventKey = datastore.key(['Event', req.params.id]); […]

在Node.js应用程序中接收Firebase云消息

是否可以使用Node.js编写客户端来接收Firebase云消息? 我通过Google Firebasepipe理模块浏览了Node.js,但没有find将我的脚本注册为客户端的方法。 另外,我也看到Google可以通过XMPP连接。 我可以使用这个接收消息吗?

正确比较节点中的数据存储区密钥

看来@google-cloud/datastore没有提供比较密钥的方法,而密钥本身不具有可比性。 有没有适当的方法来比较键? 我自己做了一些刺 function compare(key1, key2) { return (key1.kind == key2.kind) && (key1.id == key2.id) } 但是,这不适用于只有祖先或钥匙的钥匙。 所以更一般的东西可能看起来像 function compare(key1, key2) { if (key1.path.length != key2.path.length) { return false; } for (var i = 0; i < key1.path.length; i++) { if (key1.path[i] != key2.path[i]) return false; } return true; } 这些解决scheme似乎工作,但有一个丑陋的地方。 是否只有一个内置函数,我想念?

BigQuery Node.js API startQuery不会将数据注入到destinationTable中

考虑下面的BQ查询: const sourceQuery = '#standardSQL SELECT station_id, time FROM bryans_bike_analysis_data.2016_status_data ' + 'WHERE SAFE_CAST(bikes_available as INT64)=0 AND SAFE_CAST(docks_available AS INT64)=0' + 'GROUP BY station_id, time'; 并考虑以下代码(放置在Google云端函数中 – 删除了一些内容,保持简短): bqSource.startQuery({ destination: bqDest.dataset(destDataset).table(destTable), query: sourceQuery }, function(err, job) { if (!err) { console.log("Succesfully initialized query"); job.getQueryResults(function(err, rows, apiResponse) { if (!err) { console.log("Successfully completed inner"); console.log(apiResponse); } […]

如何从bigquery没有分区获取所有表ID?

我正在使用node.js bigquery客户端库,并需要从数据集中获取表的列表,而不需要分区块。 例如,我有一些分区表: table1_20170101 table1_20170102 … table1_20170131 table2_20170101 table2_20170102 … table2_20170131 我需要得到[table1,table2]作为结果,但使用getTables方法我得到[table1_20170101,table1_20170102 …] 下面的脚本示例: dataset.getTables(function (err, tables) { let result = []; for (let key in tables) { result.push(tables[key].id); } console.log(result); res.send(result); }); 有没有可用的方法来获得“未分区”的表名? 如果有大量分区表,使用_date获取所有表,拆分并使其唯一似乎是非常缓慢的。

–be_ip参数来自哪个命令:nohup nodejs server.js?

我现在正在学习如何将我的node.js应用程序部署到Google Compute Engine,并阅读Google Cloud Platform上的教程,该教程将使用MongoDB的node.js应用程序部署到Google Compute Engine。 本教程将逐步指导您完成,其中包括以下内容: 启动一个后端实例,并打开HTTP端口 在后端安装MongoDB 启动一个前端实例,并打开HTTP端口 在前端安装nodejs并在那里克隆node.js应用程序,然后启动服务器 但是,本教程的最后一个命令如下: nohup nodejs server.js nohup nodejs server.js –be_ip XXX –fe_ip YYY& 但是我不知道–be_ip和–fe__ip从哪里来。 参数的参数是后端和前端内部IP,所以我很容易猜到这个名字的含义。 然而, man nodejs和man nohup都不会显示这些参数。 另外,当我尝试用关键字“ –be_ip –fe_ip command ”searchgoogle时, 结果页面特别显示了google教程相关的页面 。 所以我想知道这些论点来自哪里。 我怎样才能更多地了解这些论点?