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

JDK installers not working on my Yosemite
Java Continuous adding of two small numbers loses accuracy [duplicate]
Which should be preferred of Excel/csv for data driven test in Selenium?
Collision detection with KeyListener and scrolling background
java.lang.NullPointerException from org.apache.commons.beanutils.PropertyUtilsBean after migrating to TC7
Binary search code in java won't run [closed]
can we implement Spring Autowiring in Java Standalone Application (Swing)
Netbeans run particular unit test with resource
Exposing properties for binding
Stuck threads in weblogic classloader
java.lang.OutOfMemoryError: GC overhead limit exceeded [duplicate]
NoClassDefFoundError eventhough class in in same folder
How to configure apache camel to see the reason of the shutdown?
Spring framework JNDI Configuration issue in JBOSS eap 6.1.0
Maven unpack war in destination folder [duplicate]
Calculate Pearson Correlation on a Spark Dataset

Categories

HOME
testing
syntax
objectgears
mean-stack
q
adb
spring-jdbc
electronics
jpeg
umd
constraint-programming
portia
add
communication
offline
export-to-csv
correlation
google-cloud-spanner
windows-azure-storage
timeout
static-libraries
msp430
netflix
pythonanywhere
emulator
jndi
emgucv
p-value
url-scheme
tooltipster
rst2pdf
social-media
fifo
spring-mybatis
saas
gsoap
sql-server-2012-express
javascriptcore
ecto
bosh
.net-4.0
data-manipulation
mapdb
html5-fullscreen
hexo
catalog
jmonkeyengine
git-merge
hockeyapp
elasticsearch-plugin
http-live-streaming
convertapi
executenonquery
multipeer-connectivity
nstextview
android-cursor
knpmenubundle
sqldf
django-scheduler
redundancy
topbeat
jquery-filter
grails-tomcat-plugin
removechild
libpng
transmitfile
nsfilemanager
qcustomplot
essence
qgraphicsview
iad
lemon
jmeter-maven-plugin
tarjans-algorithm
cakephp-3.1
mono-embedding
ami
dd
qpainter
java.util.concurrent
flask-cors
starcluster
elliptic-curve
balanced-payments
app42
message-driven-bean
c18
odata4j
dbconnection
interface-orientation
distutils
simba
jquery-knob
chuck
javaspaces
ocx
appconkit
osql
xfbml
site.master
digest-authentication
paster
kdbg
photoshop-cs4

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App