Считывание данных из Google Cloud Sql в BigQuery с помощью Clud Dataflow

#java #google-cloud-platform

#java #google-облачная платформа

Вопрос:

На самом деле мы планируем считывать данные из CloudSQL в BigQuery с помощью CloudDataflow. Когда я попытался запустить приведенный ниже код, я получил сообщение об ошибке «Имя класса драйвера не указано».

https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/templates/JdbcToBigQuery.java

Кто-нибудь знает, как передать значение для этой строки кода «options.getDriverClassName()»?

Комментарии:

1. Ваш вопрос заключается в том, что установить в параметре DriverClassName?

2. Выполняете ли вы много преобразований данных между JDBC и BigQuery? Каков ваш облачный движок базы данных SQL?

Ответ №1:

@Панчиз, @гийом Блакьер

Я сам нашел решение для этого. если вы проверите приведенную ниже ссылку из Google

https://cloud.google.com/dataflow/docs/guides/templates/provided-batch#java-database-connectivity-jdbc-to-bigquery

Нам нужно передать параметры, которые упомянуты в приведенной выше ссылке. Поскольку я запускал шаблон потока данных «JdbcToBigQuery» из IntelliJ, я передал эти параметры в качестве аргументов программы, как указано ниже, и это сработало.

 --project=<google cloud project name>
--stagingLocation=gs://<location>
--gcpTempLocation=gs://<location>
--serviceAccount=<service account for dataflow>
--runner=DirectRunner
--driverJars=gs://<location>/postgres-socket-factory-1.0.15-jar-with-dependencies.jar
--bigQueryLoadingTemporaryDirectory=gs://<location>
--driverClassName=org.postgresql.Driver
--connectionURL=jdbc:postgresql://google/<your google cloud  postgres db name>?cloudSqlInstance=<your google cloud project name>:europe-west1:<your google cloud  postgres instance name>amp;socketFactory=com.google.cloud.sql.postgres.SocketFactoryamp;useSSL=false
--username=<your username>
--password=<your passsowrd>
--query="<your sql query>"
--outputTable=<your google cloud  project name>:<your google cloud dataset name>.<your google cloud table name>
--connectionProperties=unicode=trueamp;characterEncoding=UTF-8