2020/09 8

[springboot] jpa 2개이상 DB사용(querydsl 설정 포함)

2개 이상의 DBMS를 JPA를 이용해 접근하는 법 + Querydsy( queryFactory) 사용 방법을 정리한다 한가지 조건이 있다면, 둘다 hibernate 설정이 같아야 한다.(Datasource는 다름) 만약 이부분을 다르게 할거라면 아래 설정중에 LocalContainerEntityManagerFactoryBean 를 설정하는 부분에서 삽입될 properties를 수정하면 된다. 여기서는 mysql을 사용했다. 우선 application.properties에 설정된 값을 먼저 살펴보자. 각자 서버에 맞게 설정하면 되겠다. spring.jpa.show-sql=true spring.jpa.generate-ddl=false spring.jpa.hibernate.ddl-auto=none sprin..

[airflow] 테이블 유무 확인 BigQueryTableSensor

간단하게 알아보자. airflow에는 bigquery를 수행할때 BigQueryHook을 이용하는데 여기서 제공하는 메서드 중에 hook.table_exists 라는게 있다. 해당 코드를 보면 다음과 같다 ... def table_exists(self, project_id, dataset_id, table_id): """ Checks for the existence of a table in Google BigQuery. :param project_id: The Google cloud project in which to look for the table. The connection supplied to the hook must provide access to the specified project. :ty..

공부/데이터 2020.09.10

[airflow] GCS(Google Cloud Storage) 파일을 BigQuery에 저장하기

지난 글에 이어 살펴보자. lemontia.tistory.com/957 [airflow] Mysql 데이터를 GCS(Google Cloud Storage)로 저장하기(mysql_to_gcs, 한글깨짐, 날짜포멧 수정) Data lake 를 구축하기 위한 1단계인 원본데이터를 GCS로 이동하는 것을 다뤄보려 한다. embulk를 쓸까도 했었는데, JAVA 1.8 버전 이후부터는 지원을 안하기도 했고, 관리포인트를 늘리는 것도 좋아보�� lemontia.tistory.com 이전 글에서 환경변수에 AIRFLOW_CONN_GOOGLE_CLOUD_DEFAULT 를 설정하여 GCS를 접근하게 했는데, 이 정보를 그대로 사용해도 되고 또는 BigQuery만의 설정을 따로 만들어도 좋다. 다만 airflow에서 제공..

[airflow] Mysql의 캐릭터셋(charset)이 euc-kr 일 때(혹은 로드시 can't decode byte 0xb5에러가 날때)

airflow 에서 제공하는 플러그인 중 쓰고있는 MySqlToGoogleCloudStorageOperator 는 기본 캐릭터 셋을 utf-8로 인식한다. 그런데 DB에서 설정하는 스키마가 utf8이 아닐경우 로드 하다보면 다음과 같은 에러를 발생시킨다. ERROR - 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 983, in _run_raw_task result = task_copy.execute(context=c..

[python3] 기존에 되던것이 No module named 뜰 때

최근 서버를 점검하다 파이썬3.7 => 3.8로 버전을 올리게 되면서 pip3 도 같이 업데이트 했는데, 하고나니 기존 프로그램들이 실행되지 않는 문제가 발생했다. 보아하니 pip3로 받은 모듈들이 모두 깨진게 아닐까 판단. 복구방법은 pip3 명령어로 --upgrade 해주어야 한다 예를들어 다음과 같은 에러가 난다면 ... ModuleNotFoundError: No module named 'google' 아래 명령어로 수행해주어야 한다. pip3 install --upgrade google-cloud-storage 그중에는 모듈이름이랑 완벽하게 일치하지 않는경우가 있었는데, 위 사례가 그렇다. google이라고 하지만 사실상 google-cloud-storage 와 google_auth_httplib..

[springboot, bigquery] 데이터 조회

dependency는 다음을 참조한다. dependencies { ... compile group: 'org.springframework.cloud', name: 'spring-cloud-gcp-starter-bigquery' ... } 만약 버전을 참고하지 못해 에러가 발생한다면 최신버전인 1.2.5.RELEASE 를 입력하면 된다(2020.09.01 기준) dependencies { ... compile group: 'org.springframework.cloud', name: 'spring-cloud-gcp-starter-bigquery', version: '1.2.5.RELEASE' ... } application.properties에 다음을 설정한다. spring.cloud.gcp.bigquer..

[springboot, gcp연동] GOOGLE_APPLICATION_CREDENTIALS 파일로 설정하는 2가지 방법

사용안내 공식 홈페이지 https://cloud.google.com/bigquery/docs/reference/libraries BigQuery API 클라이언트 라이브러리 | Google Cloud C#, Go, 자바, Node.js, PHP, Python, Ruby에서 BigQuery API와의 상호작용에 대한 정보 cloud.google.com 위 사이트에서 소개하는 방법은 환경설정하는 방식인데, 환경설정은 변수가 많기 때문에 프로젝트 내에 파일을 삽입하기로 했다. 인증.json파일 다운로드 했다는 가정하에 글이다. application.properties를 이용해 다음 2가지로 설정가능하다. 1) 절대경로 가동하는 컴퓨터 환경에서 절대경로를 이용해 인식시키는 방법이다 # 절대경로 #spring.c..

카테고리 없음 2020.09.02

[airflow] mac에서 DAG실행 시 오류날 때

airflow로 dag를 수행하는데 test를 수행하면 잘 되던것이 web이나 trigger로 실행하면 다음과 같이 에러가 발생한다. 찾고 찾다가 다음의 사이트를 발견했다. https://stackoverflow.com/questions/59821777/airflow-task-running-tweepy-exits-with-return-code-6 Airflow task running tweepy exits with return code -6 I have a simple Airflow DAG which has only one task - stream_from_twitter_to_kafka Here is the code for the DAG: default_args = { "owner": "me", "dep..