#java #google-cloud-platform
#java #google-облачная платформа
Вопрос:
На самом деле мы планируем считывать данные из CloudSQL в BigQuery с помощью CloudDataflow. Когда я попытался запустить приведенный ниже код, я получил сообщение об ошибке «Имя класса драйвера не указано».
Кто-нибудь знает, как передать значение для этой строки кода «options.getDriverClassName()»?
Комментарии:
1. Ваш вопрос заключается в том, что установить в параметре DriverClassName?
2. Выполняете ли вы много преобразований данных между JDBC и BigQuery? Каков ваш облачный движок базы данных SQL?
Ответ №1:
@Панчиз, @гийом Блакьер
Я сам нашел решение для этого. если вы проверите приведенную ниже ссылку из Google
Нам нужно передать параметры, которые упомянуты в приведенной выше ссылке. Поскольку я запускал шаблон потока данных «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