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

Parsing JSON for consumption in highchart.js
Files.newOutputStream vs FileOutputStream
Chromedriver in Java not executable
Android: Recents tasks list, android:excludeFromRecents=“true” behaviour with android:launchMode=“singleTop”
Why does my listview only respond when it's text is clicked?
How to get followers and following list screen names (Twitter4J)?
java.lang.NullPointerException in JSF validator [duplicate]
Hibernate select all query executes extremely slowly
Integer to UUID conversion using padded 0's
how to open Spring ModelAndView response in ajax success method as a complete page
how to format output with tabulator to make table look clearlly
File download via ajax+spring-web
note app using aura framework not working
Best way to store state in an apache camel context
Is it possible to compare an array string to a normal string?
AdMob - Ad not displayed - Error 2

Categories

HOME
compiler-construction
proxy
view
onedrive
objectgears
framework7
c#-2.0
win32gui
disassembler
swagger-ui
elasticsearch-hadoop
izpack
resize
seaborn
django-admin
finite-automata
jsdoc
karma-jasmine
java-3d
riot.js
extjs5
language-agnostic
microsoft-r
numerical-methods
wpfdatagrid
brunch
maxmind
large-file-upload
sql-server-2012-express
bosh
google-cloud-endpoints-v2
protovis
asset-pipeline
wallpaper
android-fingerprint-api
fedex
pdf-reactor
powershell-dsc
isbn
estimote
mime
heightmap
apple-news
flickr-api
errordocument
jquery-validate
celery-task
domain-model
pebble-watch
tropo
mplayer
elgg
mako
azure-virtual-network
ctest
fuzzy-search
master-slave
whois
dlna
netmq
historian
tcpserver
wireshark-dissector
pundit
census
bridge.net
offloading
jscript.net
rebol3
xceed-datagrid
.aspxauth
ftps
gwt-rpc
chronoforms
yui-compressor
sabredav
delphi-6
chuck
stage
pydot
zpt
locationlistener
file-comparison
w3wp.exe
asp.net-mvc-areas
preference
simpletest
zune
w3wp
multiple-languages
wsdl.exe

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile