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

Building Nutch Plugin: class dependency
Libgdx font issue
JavaFX dependency of windows in gui
How to direct maven to download Apache commons-io-2.4.jar?
JpaRepository Centralized Getter Java Design
Is there a way to deploy a Maven project with “jar” packaging into Tomcat7?
Maven: package org.junit does not exist
How to maintain a configuration file in java application project like a configuration file in C# application?
REST Service, POST multi-tiered CSV file, drop wizard, java
JSON4s can't find constructor w/spark
Class [org.apache.derby.jdbc.ClientDriver] not found Exception [duplicate]
fuzzy fast string matching and indexing algorithm
Android NDK Camera Path getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
difference between 2 types of downcasting
Print all the values of the List except the last one.
Domain Objects to map

Categories

HOME
compiler-construction
keras
nullpointerexception
grep
cakephp-2.5
webrequest
adfs
google-translate
kibana-4
u-sql
postgres-xl
google-apps-marketplace
timeout
usergrid
tostring
interop
excel-vba-mac
firefox-webextensions
facebook-instant-articles
buildbot
dynamic-featured-image
bootstrap-duallistbox
nhapi
social-media
fluentvalidation
neo4j-spatial
replaceall
tasklet
nat
bcd
twilio-api
lxd
accelerate-framework
vxworks
xcode-extension
gesture
unspecified
bootstrapper
lumberjack
cookiecutter-django
galen
sfdc
nand2tetris
businessworks
azure-application-gateway
komodoedit
dandelion
return-value
elgg
ifs
spring-cache
django-scheduler
medium.com
skype4py
nessus
design-by-contract
goose
kendonumerictextbox
pervasive-sql
spim
cartesian-product
t4mvc
comobject
mmc
census
oxwall
fpml
bitcoinj
google-reader
mesa
kgdb
jboss-weld
imdbpy
oam
coverflow
ril
mylyn
limejs
smtp-auth
distutils
typoscript2
dmoz
chuck
wse3.0
netbeans-6.9
data-loss
spyware
cinema-4d
recent-documents
yui-datatable
radcombobox
forums
webkit.net
memory-size
pascal-fc
aquaticprime
putchar
scripting-languages

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile