source

Talend가 열을 타임스탬프로 구문 분석할 수 없습니다.

manysource 2022. 11. 13. 19:34

Talend가 열을 타임스탬프로 구문 분석할 수 없습니다.

이 문제에 대한 당신의 도움이 필요합니다.

저는 간단한 T맵으로 테이블에서 다른 테이블로 데이터를 로드하는 부가 작업을 하고 있습니다.

특정 날짜 동안만 발생했기 때문에 알 수 없는 오류라고 했습니다.

java.sql.SQLException: Could not parse column as timestamp, was: "2009-06-01 00:00:00"    

이 행을 포함하는 행 앞에 수천 개의 행이 있어도 오류가 생성되지 않습니다.

날짜 2009-06-01 00:00:00를 다른 날짜로 변경하거나 요일 부분이나 월, 심지어 시간을 변경하면 오류 없이 진행됩니다.

데이터 소스는 mariadb이고 수신처는 Mysql 데이터베이스입니다.

당신의 도움에 감사드립니다

여기에 이미지 설명 입력 여기에 이미지 설명 입력

여기에 이미지 설명 입력

그리고 이것은 발생한 오류를 포함하는 코드의 일부입니다.

                    if (colQtyInRs_tMysqlInput_5 < 6) {
                        row5.created_at = null;
                    } else {

                        if (rs_tMysqlInput_5.getString(6) != null) {
                            String dateString_tMysqlInput_5 = rs_tMysqlInput_5
                                    .getString(6);
                            if (!("0000-00-00")
                                    .equals(dateString_tMysqlInput_5)
                                    && !("0000-00-00 00:00:00")
                                            .equals(dateString_tMysqlInput_5)) {
                                row5.created_at = rs_tMysqlInput_5
                                        .getTimestamp(6);
                            } else {
                                row5.created_at = (java.util.Date) year0_tMysqlInput_5
                                        .clone();
                            }
                        } else {
                            row5.created_at = null;
                        }
                    }

에서 더 이상의 정보를 제공하지 않았기 때문에

  • 소스 데이터의 모양(예: 소스 날짜 필드 또는 문자열 필드)

  • 해석은 왜 발생하는가.이것은 문자열인 소스 데이터에 연결되어 있는 것 같습니다.

  • 구문 분석 패턴의 외관

나는 여기서 조금 추측할 것이다.

번째: 소스에 문자열을 제공한다고 가정합니다.이 경우 열의 날짜 형식이 항상 동일한지 확인해야 합니다.또한 구문 분석을 위한 타임스탬프 형식을 보여줘야 합니다.

번째: 날짜 값을 변경해야 사용할 수 있다고 말씀하셨습니다.이것은 해석의 문제인 것 같습니다.예를 들어, 실수로 월과 일 필드를 바꾼 경우 등입니다.yyyy-dd-mm HH:mm:ss뭐 비슷한 거라도.이것도 해석 문자열에 따라 달라집니다.

이것에 대해 종종 혼란이 있기 때문에, Talend에서 날짜 처리를 위한 블로그 투고를 작성했습니다.

이 에러는 타임존에 의한 것으로, 많은 솔루션을 시도하고 나서, My Laptop이 UTC에 있고, 데이터베이스 타임존이 UTC+01이기 때문에 타임존을 변경할 생각을 했습니다.따라서 Talend는 로컬 환경에서 이 에러를 생성합니다.다른 사람에게 도움이 되었으면 좋겠다

언급URL : https://stackoverflow.com/questions/45792622/talend-could-not-parse-column-as-timestamp