Status Update
Comments
pe...@gmail.com <pe...@gmail.com> #2
Hello,
This issue report has been forwarded to the Cloud BigQuery Product team so that they may investigate it, but there is no ETA for a resolution today. Future updates regarding this issue will be provided here.
va...@google.com <va...@google.com>
je...@google.com <je...@google.com> #3
Hi,
To troubleshoot the issue further, I have created a private ticket to provide some information about the issue (for which you should have received a notification). Please provide requested information there. Don't put any personal information, including project identifiers in this public ticket.
je...@google.com <je...@google.com> #4
Hello,
Thank you for reaching out to us with your request.
We have duly noted your feedback and will thoroughly validate it. While we cannot provide an estimated time of implementation or guarantee the fulfillment of the issue, please be assured that your input is highly valued. Your feedback enables us to enhance our products and services.
We appreciate your continued trust and support in improving our Google Cloud Platform products. In case you want to report a new issue, please do not hesitate to create a new issue on the
Once again, we sincerely appreciate your valuable feedback; Thank you for your understanding and collaboration.
Description
and
Problem you have encountered:
A NOT FOUND error message is thrown e.g: Table 61605904359:matrixbq.mtcars not found.
What you expected to happen:
Data to be inserted successfully.
Steps to reproduce:
run the code described in
Other information (workarounds you have tried, documentation consulted, etc):
Checking if the table exists does not mean it is possible to insert data. The following method returns true even when the insert fails:
boolean tableExist(String datasetName, String tableName) {
def table = bigQuery.getTable(TableId.of(datasetName, tableName))
if (table != null && table.exists()) {
return true
}
return false
}
My current workaround that seems to to be working is to do as follows:
createTable(matrix, datasetName)
Thread.sleep(5000)
while(true) {
try {
insert(matrix, tableId)
break
} catch (BigQueryException e) {
if (e.code != 404) {
throw e
}
println("Table is not ready for insert, sleeping for 5 seconds")
Thread.sleep(5000)
}
}
The API could be "fixed" by adding an optional boolean flag to wait on create fro the table to be ready to receive data i.e; bigQuery.create(tableInfo, true). Another way would be to add an api call for status (if its insertable) and then build some polling and sleep logic on the client side which would be slightly cleaner than catching exceptions and retrying as in the workaround described.