java


Unable to Connect to BigQuery from local App Engine instance in Eclipse


I'm new to Google App Engine and I'm trying to run through some of the tutorials to see how this would work for my organization. We are looking at putting some of our data into BigQuery and converting some of our Web applications to App Engine which would need to access BigQuery data.
I am using the java-docs-samples-master code, specifically bigquery/cloud-client/src/main/java/com/example/bigquery/SimpleApp.java
I can run this from the command line using
mvn exec:java -Dexec.mainClass=com.example.bigquery.SimpleAppMain
I incorporate the code into App Engine, which I'm running in Eclipse and created a wrapper so I could still run it from the command line. It works when running from the command line but I get an error when I run it from App Engine in Eclipse.
Is there something I'm missing to configure my local App Engine to connect to Big Query?
Error:
com.google.cloud.bigquery.BigQueryException: Invalid project ID 'no_app_id'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash.
at com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.translate(HttpBigQueryRpc.java:86)
at com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc.create(HttpBigQueryRpc.java:170)
at com.google.cloud.bigquery.BigQueryImpl$3.call(BigQueryImpl.java:208)
...
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400
{ "code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Invalid project ID 'no_app_id'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash.",
"reason" : "invalid"
} ],
"message" : "Invalid project ID 'no_app_id'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash."
}
Code:
package com.example.bigquery;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.FieldValue;
import com.google.cloud.bigquery.Job;
import com.google.cloud.bigquery.JobId;
import com.google.cloud.bigquery.JobInfo;
import com.google.cloud.bigquery.QueryJobConfiguration;
import com.google.cloud.bigquery.QueryResponse;
import com.google.cloud.bigquery.QueryResult;
import java.util.List;
import java.util.UUID;
public class SimpleApp {
public void runBQ() throws Exception {
// [START create_client]
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
// [END create_client]
// [START run_query]
QueryJobConfiguration queryConfig =
QueryJobConfiguration.newBuilder(
"SELECT "
+ "APPROX_TOP_COUNT(corpus, 10) as title, "
+ "COUNT(*) as unique_words "
+ "FROM `publicdata.samples.shakespeare`;")
// Use standard SQL syntax for queries.
// See: https://cloud.google.com/bigquery/sql-reference/
.setUseLegacySql(false)
.build();
// Create a job ID so that we can safely retry.
JobId jobId = JobId.of(UUID.randomUUID().toString());
Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build());
// Wait for the query to complete.
queryJob = queryJob.waitFor();
// Check for errors
if (queryJob == null) {
throw new RuntimeException("Job no longer exists");
} else if (queryJob.getStatus().getError() != null) {
// You can also look at queryJob.getStatus().getExecutionErrors() for all
// errors, not just the latest one.
throw new RuntimeException(queryJob.getStatus().getError().toString());
}
// Get the results.
QueryResponse response = bigquery.getQueryResults(jobId);
// [END run_query]
// [START print_results]
QueryResult result = response.getResult();
// Print all pages of the results.
while (result != null) {
for (List<FieldValue> row : result.iterateAll()) {
List<FieldValue> titles = row.get(0).getRepeatedValue();
System.out.println("titles:");
for (FieldValue titleValue : titles) {
List<FieldValue> titleRecord = titleValue.getRecordValue();
String title = titleRecord.get(0).getStringValue();
long uniqueWords = titleRecord.get(1).getLongValue();
System.out.printf("\t%s: %d\n", title, uniqueWords);
}
long uniqueWords = row.get(1).getLongValue();
System.out.printf("total unique words: %d\n", uniqueWords);
}
result = result.getNextPage();
}
// [END print_results]
}
}
From the looks of your error code, it's probably due to your project ID not being set: "no_app_id". Here is how to set your project ID for app engine: https://developers.google.com/eclipse/docs/appengine_appid_version.

Related Links

VTD-XML Java code only getting first elements
How to set the initial value of a multidimensional array in java
Each element in a set can occur at most once in any order with Regex
Why Random random = new Random()? [closed]
Config library which allows to define scopes
iframe not shown in JEditorPane
How to avoid concurrent access of controller method with the same session in java spring?
How to continue excute next if statement when the former if statement have an error
Java “Breakout” clone: Suspending and resuming thread
Creating multiple JVM in JAVA (VMM) [closed]
Java AWT: Drawing Japanese text with Graphics2D.drawString()
Parse CSV with some empty fields. Make sure array always has X items. Using OpenCSV
Why My hibernate4 session.save() can only be called once,cannot be called continuously
How to add a space in the middle of a word
get embedded resourses in doc files using apache tika
Scanner not reading the last number

Categories

HOME
compiler-construction
osgi
fluentd
reserved
tinymce
angular-material
fme
webstorm
infragistics
dxl
ip
ojdbc
elasticsearch-hadoop
dacpac
spring-xd
collectd
phaser
size
decomposition
try-catch
undefined
django-cms
lldb
conemu
cx-freeze
lcd
spark-jobserver
status
facebook-access-token
kannel
react-css-modules
info.plist
fopen
kendo-datasource
sql-server-2012-express
tinymce-4
galsim
create-table
calibre
framemaker
y86
mpmediaquery
multilingual
azure-ml
galen
glew
angular2-meteor
jlink
mu
tactic
sqlclient
sonarlint-vs
rotativa
paypal-express
persist
hill-climbing
whois
pyke
freelancer.com-api
uid
ford-fulkerson
teamcity-8.0
eclipse-clp
jmeter-maven-plugin
wireshark-dissector
fouc
interrupted-exception
processmodel
system.reflection
operator-precedence
nstableviewcell
camanjs
gui-test-framework
cdt
xcode-6.2
article
p4java
fluentautomation
mysql-error-1062
kgdb
transcoding
viadeo
page-layout
tws
chronoforms
mt
first-responder
propertyeditor
dbproviderfactories
parametric-equations
dotnethighcharts
hgsubversion
whoosh
vdsp
subgurim-maps
hamachi
table-footer
recent-documents
preference
zend-tool
nintendo-ds
audio-capture
libs
mediarss

Resources

Encrypt Message