簡體   English   中英

如何在不分區的情況下從bigquery獲取所有表ID?

[英]How to get all table id's from bigquery without partitioning?

我正在使用 node.js bigquery 客戶端庫,需要從沒有分區塊的數據集中獲取表列表。

例如,我有許多分區表:

  • 表1_20170101
  • 表1_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獲取所有表,拆分並使其唯一似乎非常慢。

您可以對__TABLES_SUMMARY__表執行查詢,而不是使用getTables方法。

下面的示例獲取數據集中的所有表,在_字符上拆分名稱並獲取第一部分。 然后它創建一個不同的列表。

bigquery.query({
  query: [
    'SELECT DISTINCT SPLIT(table_id,"_")[ORDINAL(1)] as tableName',
    'FROM `DATASETNAME.__TABLES_SUMMARY__`;'
  ].join(' '),

  params: []
}, function(err, rows) {
  let result = [];

  for (row of rows) {
    result.push(row.tableName);
  }
  console.log(result);
});

您可以使用元查詢:

select * from  `wr_live.__TABLES_SUMMARY__`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM