Apache Beam: java.lang.illegalstateException при чтении из таблицы MSSQLJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Apache Beam: java.lang.illegalstateException при чтении из таблицы MSSQL

Сообщение Anonymous »

У меня есть конвейер пучка, который считывает из таблицы MSSQL, используя простой запрос: < /p>
return "SELECT "
+ "U.ID as userid, "
+ "U.firstname as firstname, "
+ "U.lastname as lastname, "
+ "email as email, "
+ "U.IP as ip "
+ "FROM users U WITH (NOLOCK) "
+ "OPTION (MAXDOP 4)";
< /code>
Моя (упрощенная) таблица пользователей выглядит так: < /p>
CREATE TABLE users (
[ID] INT IDENTITY (1000000, 1) NOT NULL,
[Firstname] NVARCHAR (30) CONSTRAINT [DF_iddb_Nom] DEFAULT ('') NOT NULL,
[Lastname] NVARCHAR (30) CONSTRAINT [DF_iddb_Prenom] DEFAULT ('') NOT NULL,
[Email] NVARCHAR (40) NOT NULL,
[IP] VARCHAR (15) NULL
)
< /code>
Мой процессор: < /p>
public static class DataReadFn extends DoFn {

@ProcessElement
public void processElement(ProcessContext c) {
Row row = c.element();

User user = new User()
.setUserId(format(String.valueOf(row.getInt32("userid"))))
.setFirstName(format(row.getString("firstname")))
.setLastName(format(row.getString("lastname")))
.setEmail(format(row.getString(“email”))
.setIp(format(row.getString("ip"))); // last

c.output(record);
}

private String format(String str) {
return str == null ? "" : str.trim();
}

}
< /code>
Когда я выполняю этот конвейер на Dataflow, я получаю следующее исключение только тогда, когда я включаю Lastloginip в запрос. Без LASTLOGINIP он работает нормально. < /P>
java.lang.IllegalStateException
at org.apache.beam.sdk.util.Preconditions.checkStateNotNull(Preconditions.java:452)
at org.apache.beam.sdk.io.jdbc.SchemaUtil.lambda$createLogicalTypeExtractor$83184fac$1(SchemaUtil.java:307)
at org.apache.beam.sdk.io.jdbc.SchemaUtil$BeamRowMapper.mapRow(SchemaUtil.java:380)
at org.apache.beam.sdk.io.jdbc.SchemaUtil$BeamRowMapper.mapRow(SchemaUtil.java:358)
at org.apache.beam.sdk.io.jdbc.JdbcIO$ReadFn.processElement(JdbcIO.java:1498)
< /code>
Это, вероятно, как -то связано с фактом, что Lastloginip является нулевым, но не может точно сказать. Есть идеи? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/763 ... ssql-table
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»