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

Obtaining a resultant from the mapping of 2 variables
Creating a Deck of Cards
Why does JFrame paint graphics three times and not one?
Writing Chess Game, Trouble Getting One Square Object From Another
Using static fragment in Fragment Page Adapter
Java PHP Application calculate or get IPv6 from IPv4 if available
ScrollView going behind button in Android
Passing integers from file to array
Tomcat 7 java.lang.NullPointerException when wrong credential entered using Active Directory authentification
How to update 2 tables using one query in JPA native query?
Running separate process from Java applet using internal class
Response time out when pinging an IP address in Java
Alignment in combined OHLC chart
Log4j2 Servlet 3.0 not logging
Refresh a Loader when data is changed - android
DataAccessException vs SQLException

Categories

HOME
cloud
vbscript
blogger
fluentd
raspberry-pi
relayjs
bpmn
android-4.4-kitkat
q
mvvmcross
yum
autotools
basic
circular-dependency
visual-studio-cordova
dynamics-crm-online
dosgi
ef-migrations
finite-automata
jsdoc
aurigma
reactive-cocoa
swingx
autocad-plugin
clickonce
jquery-ajaxq
semantic-analysis
user-interaction
fgetcsv
nhapi
ping
atlassian-crucible
skia
binary-data
key-value-observing
semantic-versioning
karaf
wallpaper
wpf-controls
file-format
dartium
ssjs
reportingservices-2005
total-commander
.net-4.6.2
websphere-mq-fte
wso2carbon
logfiles
google-datalayer
theming
rails-routing
datastax-startup
mplayer
carrot
pg-dump
google-perftools
vmware-tools
adxstudio-portals
fody
firebaseui
blackberry-10
python-stackless
make-install
bgp
apachebench
cloudbees
separator
cartesian-product
eclipse-clp
ruby-2.2
content-length
riak-cs
ios9.1
cisco-ios
system32
sonarqube5.1.2
rake-task
jsonpickle
c3
nstableviewcell
valueconverter
valuechangelistener
mbr
stxxl
openlaszlo
pyhdf
c18
jsctypes
dotnetnuke-5
robotics-studio
bitsharp
jspinclude
osql
spyware
tomcat-valve
invite
android-sdk-2.1
telerik-scheduler
.nettiers
gin
bespin
fixed-width
data-driven
uimenucontroller
defensive-programming

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