在Google Apps脚本中定义BigQuery表位置

问题描述

我正在尝试从Google Apps脚本中的BigQuery表读取数据。目标表位于欧盟区域,但认情况下会从脚本中请求美国。

代码

  var request = {
    query: 'SELECT * FROM `table-name`'
  };
  var queryResults = BigQuery.Jobs.query(request,projectId);

错误

GoogleJsonResponseException:调用bigquery.jobs.query的API失败,并显示错误:未找到:在美国位置未找到数据集

解决方法

报价``是一个问题,表名应不带引号:

class _ExampleState extends State<Example> {

@override
Widget build(BuildContext context) {
  return FutureBuilder<String>(
    future: downloadData(),// function where you call your api
    builder: (BuildContext context,AsyncSnapshot<String> snapshot) {  // AsyncSnapshot<Your object type>
      if( snapshot.connectionState == ConnectionState.waiting){
          return  Center(child: Text('Please wait its loading...'));
      }else{
          if (snapshot.hasError)
            return Center(child: Text('Error: ${snapshot.error}'));
          else
            return Center(child: new Text('${snapshot.data}'));  // snapshot.data  :- get your object which is pass from your downloadData() function
      }
    },);
}
Future<String> downloadData()async{
  //   var response =  await http.get('https://getProjectList');    
  return Future.value("Data download successfully"); // return your response
}
}
,

如果您有合适的数据集来限定表名,那么您的查询将被自动路由到数据所在的位置,例如:

SELECT * FROM `myDatasetInEu.table-name`

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...