Я настроил задание на передачу данных, чтобы получить данные из базы данных Oracle и поместить данные в Google Bigquery.
Поток заданий: Выполнить SQL -> AvroTo Json -> PutBigQueryBatch
Я передал все таблицы, в которых нет объекта BLOB. Когда я запускаю это задание для таблицы с объектом BLOB, при выполнении SQL процессор выдает следующую ошибку:
ExecuteSQL failed to process session due to oracle.sql.BLOB.free()V;
Processor Administratively Yielded for 1 sec: java.lang.AbstractMethodError: oracle.sql.BLOB.free()V
Этот ответ предлагает использовать процессор Выполнить SQL для получить данные BLOB из Oracle, но я использую Execute SQL, и он показывает эту ошибку. Что я делаю неправильно при использовании Execute SQL?
Конфигурация:
- Исходная база данных: Oracle 11g Release 2
- Источник JDB C драйвер: источник
- Назначение: Bigquery
- Активные службы для задания: DBCPConnectionPool, GCPCredentialsControllerService
Конфигурация DBCPConnectionPool:
- URL-адрес подключения к базе данных:
jdbc:oracle:thin:@IP:host:sid
- Имя класса драйвера базы данных:
oracle.jdbc.driver.OracleDriver
- Расположение драйверов базы данных:
C:\Users\91918\Desktop\OJDBC-Full\ojdbc5.jar,C:\Users\91918\Desktop\OJDBC-Full\ojdbc6.jar,C:\Users\91918\Desktop\OJDBC-Full\ons.jar,C:\Users\91918\Desktop\OJDBC-Full\orai18n.jar,C:\Users\91918\Desktop\OJDBC-Full\simplefan.jar,C:\Users\91918\Desktop\OJDBC-Full\ucp.jar,C:\Users\91918\Desktop\OJDBC-Full\xdb6.jar
- Пользователь базы данных:
username
- Пароль:
password
- Запрос проверки:
SELECT 1 FROM DUAL
Выполнение SQL конфигурация:
- Служба пула соединений с базой данных: DBCPConnectionPool
- SQL запрос на выборку: select * from schema.table
- Макс. Время ожидания: 0,1 с c
- Нормализация имен таблиц / столбцов : False
- Использовать логические типы Avro: False
- Формат сжатия: отсутствует
- Десятичная точность по умолчанию: 10
Oracle схема:
WAFERMAPID CHAR(16)
CDOTYPEID NUMBER(10)
CHANGECOUNT NUMBER(10)
MAPCONVERTID CHAR(16)
ISFROZEN NUMBER(10)
NAME VARCHAR2(120)
WAFERMAP BLOB
Мое намерение с данными:
Считать двоичный объект объекта BLOB в виде строки, вставить его в запрос Bigquery. .
Информация о BLOB: Объект BLOB является файлом GZ. Пример: file.txt.gz. Файл внутри GZ содержит текстовый файл с текстом XML. Чтение текста внутри файла и помещение его в Bigquery будет конечным результатом.