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

How to deserialize a JSON Object in a multidimensional array
Java MVC, what model to use for add screens?
Yaml file value is not loading using jackson in java
Setting shift jis encoding
How to initialize empty ImmutableEnumMap using guava?
How do I use a button in Another Method? [duplicate]
Why is my JSoup request returning an empty page?
Cannot marshall type class com.amazonaws.services.dynamodbv2.model.AttributeValue without a custom marshaler or #DynamoDBDocument annotation
Re-use same adapter for multiple almost similar fragments
How to infer the types of all the parameters of a function using java-parser and java-symbol-solver?
Set input value the value of JScrollBar
Elegant way to validate keyset of a map with an enum?
Java List Horrible Adding Performance
How to use viewHolder to make listView user input not go back to default when scrolling off screen
Linux tuning for Java Concurrent Performance
Suddenly getting errors running my Selenium project

Categories

HOME
ngrx
office365api
syntax
amazon-ecs
jpeg
google-project-tango
django-imagekit
gitpitch
ssl-client-authentication
timeout
hex-editors
ibm-odm
zebra-printers
ups
beyondcompare
jtextfield
cx-freeze
devops
blazemeter
elasticsearch-ruby
atlassian-crucible
nouislider
fabric8
.net-4.0
pdb
contact-form
jspresso
perlin-noise
form-data
wallpaper
http-referer
y86
bytecode-manipulation
objectlistview
businessworks
galleria
qwt
scrollable
multipeer-connectivity
rails-routing
boost-multi-index
veracode
elgg
libusb-win32
windows-iot-core-10
spring-mongodb
hittest
query-performance
passport-google-oauth
whois
php-parse-error
ptrace
xpath-1.0
freelancer.com-api
vhd
teamcity-8.0
icu4j
libressl
kcachegrind
embedded-code
riak-cs
tableau-online
appfabric-cache
mono-embedding
createprocessasuser
graph-api-explorer
pretty-print
bridge.net
tt-news
article
aapt
contenttype
yorick
valuechangelistener
hippomocks
marmalade
stxxl
industrial
quantlib-swig
soundtouch
flash-builder4.5
buster.js
rdoc
onsubmit
objective-c-2.0
bubble-chart
semantic-diff
nsobject
qt-jambi
appender
imac
mysql-error-1005
subviews
blitz++
wise
dbal
web-architecture
sef
backcolor
uimenucontroller
sustainable-pace
pascal-fc
zend-decorators
putchar
multiple-languages

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