airflow 로 스케쥴 관리를 하고 있는데, logical_date 가 1초 밀리는 희안한 일이 일어났다. logical_date 의 경우 RUN_ID 값에 시간값이 붙어서 쉽게 인지가 가능한데, 정상적일땐 아래와 같이 RUN_ID 값이 00 으로 딱 떨어졌는데, 어느순간 다음과 같이 RUN_ID 의 값이 00 으로 딱 안떨어지고, 뒷 단위가 조금씩 밀리는 현상이 발견되었다. 구분 정상일때 비정상일때 RUN_ID scheduled__2003-12-07T20:00:00+00:00 scheduled__2003-12-07T21:00:01.0099+00:00 이게 문제가 되는 이유는 ExternalTaskSensor 의 경우는 앞쪽 DAG 의 의존성을 체크할때 logical_date 가 같은 이력을 참조하기 ..
참고로 org.mongodb:mongodb-driver-sync:jar:3.8.2 버전을 사용했고, 예제에 있는 코드를 참고하여 연결정보를 만들려고 하는데 희안하게 MongoClientSettings 사용하려고 했는데, 해당 라이브러리를 찾지 못하는 이상한 상황이 생겼다. 특이한점은 SpringBoot 를 이용해서 웹서비스를 제공하고 있는데, 해당 의존성을 올리면 import 못하는 문제가 해결되었다. 하지만, 호환성 문제가 검증안되서 찜찜해서 다른 해결방법을 찾기위해 두 차이가 뭔지 확인해 보았다. - 2.0.9.RELEASE -> 2.1.4.RELEASE import com.mongodb.MongoClientSettings; // builder.hosts(Collections.singletonList..
DBeaver 는 mac 과 windows 버전 모두 존재하는 DB 툴이라서 애용하는편이다. mysql 8.x 버전대에 접속할때 Public Key Retrieval is not allowed 오류가 일어날때가 있는데, 이를 해결하는 방법이 존재한다. allowPublicKeyRetrieval 을 True 로 변경하면 된다. 해결방법 Main 탭에서는 연결정보를 관리하는데, 그 옆에 Driver properties 탭이 존재하는데, 해당 탭을 클릭하면... 아래와 같이 Driver properties 를 변경할 수 있다. 위와같이 에러난다면 allowPublicKeyRetrieval 값이 False 로 되어있을텐데, 이 값을 True 로 변경하자. 설정이 끝난 후, Test Connection 버튼을 눌..
상황 Flink 를 직접 빌드하려고 했는데, 다음과 같은 오류가 나면서 빌드에 실패했다. 데스크탑에서 하면 문제가 없어서 좀 삽질했는데, jdk8 버전을 사용하여 빌드한다면 버전을 확인해 보자. $ mvn clean package -DskipTests ...생략... [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 24:50 min [INFO] Finished at: 2022-08-30T15:54:3..
주키퍼의 znode 를 웹에서 볼 수 있도록 지원하는 zoonavigator 라는 오픈소스가 존재한다. 도커를 이용하는 방식과 snap 을 이용해 설치하는 방식이 있는데, 이상하게 특정서버에서 설치가 안되는 현상이 발생되었다. 에러메시지는 다음과 같다. 신기한건 여러대의 서버에 설치를 시도할때, 일부 서버에서만 이런 현상이 발생되었다는점이다. $ sudo yum -y install epel-release $ sudo yum -y install snapd $ sudo systemctl enable --now snapd.socket $ sudo ln -s /var/lib/snapd/snap /snap $ sudo snap install zoonavigator error: system does not full..
Flink 에서 Window 단위로 데이터를 다루려면 워터마크를 지정해야하고, 워터마크를 지정하기위해서 TO_TIMESTAMP_LTZ 함수를 써서 날짜타입으로 전환해서 사용해야 하는 경우가 종종 있다. 보통 EpochTime 이 들어있는 필드를 쓴다면 아래와 같은 형태로 워터마크를 선언하려고 할것이다. CREATE TABLE source_table { ... rowtime AS TO_TIMESTAMP_LTZ(logTime, 6), // logTime 의 단위는 microsec WATERMARK FOR rowtime AS rowtime } WITH { ... }; 그리고, 원본의 logTime 필드의 값이 microsec 이라서 정밀도값을 6으로 지정하면 다음과 같은 오류가 발생한다. org.apache...
하이브에서 쿼리를 날릴때 이런 쿼리가 발생했고 구글링 하면 나오는 사이트중 그나마 힌트에 근접한 결과는 아래링크에서 얻을수 있었다. https://docs.treasuredata.com/display/public/PD/Hive+Known+Limitations 에러의 원인은 뭘까? 원인이 되는 쿼리를 패턴을 찾아보면 "LATERAL VIEW" 와 "UNION ALL" 를 복잡하게 섞었을때 종종 나타나는것 같다. 가끔 beeline 에서 오류나는게 hive 커멘드에서는 재현이 안되는 경우가 있으니 동일한 환경에서 쿼리를 테스트해야 재현되는경우가 있으니 참고하자. 상세한 오류(에러)메시지는 아래와 같다. 참고로 해결방법은 버그가 아닐까 싶을 정도로 단순하며 찜찜하다 ㅋㅋ etting log thread is ..