반응형

클릭하우스 설치

centos 환경에서 설치하였습니다.

 

#클릭하우스 저장소
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

#ClickHouse 서버와 클라이언트를 설치합니다.
sudo yum install -y clickhouse-server clickhouse-client

#ClickHouse 서비스를 활성화하고 시작합니다.
sudo systemctl enable clickhouse-server
sudo systemctl start clickhouse-server
sudo systemctl restart clickhouse-server
sudo systemctl stop clickhouse-server

#상태확인
sudo systemctl status clickhouse-server

#클릭하우스 콘솔 접속
clickhouse-client

 

 

 

설치 중 오류

#sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo 에러 python 버전 디폴트가 3으로 설정되어 있을 때 발생하며 버전2로 변경

ls /usr/bin/ | grep python

----------------------------
abrt-action-analyze-python
python
python2
python2.7
python3
python3.6
python3.6m
----------------------------

update-alternatives --config python
update-alternatives --install /bin/python python /bin/python3.6 1
update-alternatives --install /bin/python python /bin/python2.7 2
update-alternatives --config python

 

반응형
반응형

개요

클릭하우스 설치를 위해 아래 명령어를 입력하던 중 에러가 발생하였다.

 

sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

 

코드

 python 버전 디폴트가 3으로 설정되어 발생하였으며, 해결을 위해 2로 변경해 준다.

 

해결

#파이썬 버전확인
ls /usr/bin/ | grep python

----------------------------
abrt-action-analyze-python
python
python2
python2.7
python3
python3.6
python3.6m
----------------------------


# 현재 설정 파이썬버전 확인
update-alternatives --config python

# 설정에 버전 추가하기
update-alternatives --install /bin/python python /bin/python3.6 1
update-alternatives --install /bin/python python /bin/python2.7 2

# 설정에 들어가 2버전으로 변경
update-alternatives --config python
반응형
반응형

원인

이번주 부터 갑자기 자동화로 수집되는 크롤링들이 안되는 경우가 있었을 겁니다. 이유는 바로 115버전으로 업데이트 되면서 chromedriver_autoinstaller.install(True)이 제대로 작동하지 않아서 입니다. 저는 아래와 같은 에러메세지가 발생했습니다.

해결

1. 크롬드라이버다운(115)

https://chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading. For older versions of Chrome, please se

chromedriver.chromium.org

우선 115가 아니더라도 자신의 크롬버전의 맞은 크롬드라이브를 다운받습니다. 우선 아래 빨간색 밑줄 클릭후

 

저는 115이기 때문에  stable win64버전을 다운받았습니다.

2. 코드 수정

기존에러 코드

chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
    
except:
    chromedriver_autoinstaller.install(True)
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
driver.implicitly_wait(10)

수정된 에러코드

저는 스크립트와 크롬드라이브를 같은 폴더내에 위치하여 경로를 아래와 같이 잡았습니다. 수정 후 배치를 다시 진행되면 스크립트가 정상적으로 수행되는 것을 볼 수 있습니다.

chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]
try:
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
    
except:
    chromedriver_autoinstaller.install(True)
    
    ## 현재 작동안함
    #driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', options=option)
    
    ## 신규 코드
    driver = webdriver.Chrome(f'./chromedriver.exe', options=option)
driver.implicitly_wait(10)
반응형
반응형

에러

trino를 통해 타 DB간 조인시 타입이 안맞는 경우가 있었습니다. 그래서 다른 DB의 카테고리 넘버를 char -> int로 변경하려고 했을 때 위와 같은 에러가 나타났습니다.

해결

해결 방법은 간단하며, CHAR을 VARCHAR로 변경한 후 INT로 변경해주면 됩니다.

## 에러 발생 SQL
cast(broad_cate_no a as int)


## 에러 해결 SQL
cast(cast(broad_cate_no as varchar) as int)
반응형
반응형

에러

위 에러는 Airflow localexcuter설치 중 Mysql과 연동하는 과정에서 발생하였습니다.

해결

해결 방법은 간단합니다.

pip install mysqlclient 를 통해 설치하면 간단히 해결됩니다.

반응형
반응형

에러 원인

보통 위와 같은 원인은 특정 조건이 만족하는 두개의 True/False 값을 and / or연산으로 묶을 때 발생합니다.

예를들어 특정 데이터 프레임에서 몸무게가 50kg이상 키가 170cm이하인 사람을 찾을 때 

 

df['weight'] >= 50kg 과 df['height'] <= '170cm'이 두개의 조건을 and조건자로 찾아야합니다.

 

에러 문법

# and 연산자 1
# and 조건 대신 &를 쓰며, or조건의 경우도 |를 씁니다.
(df['weight'] >= 50) and (df['height'] <= 170)

# and 연산자 2
# 각각의 조건은 () 로 묶어야 합니다.
df['weight'] >= 50 & df['height'] <= 170

해결

df[(df['weight'] >= 50 & (df['height'] != 170)]
반응형
반응형

대용량 파일 다운 실패

Redash 쿼리를 통해 약 11만 row의 데이터 결과값을 얻었습니다.

column은 약 10개가 있었고,  중간중간 text값으로 인하여 용량이 컷으며, 이로 인해 다운로드가 실패하는 현상이 발생하였습니다. limit 1000 추가 후 다운하는데는 문제가 없어, 용량 문제라고 판단하였습니다.

 

원인

원인은 redash서버에서 local로 데이터를 전송할 때 데이터의 크기가 커, 설정된 시간을 초과하였기 때문입니다. 

redash는 nginx 뒷 단에 GUNICORN를 사용하게되는데 GUNICORN의 기본 timeout은 30초입니다. 따라서 데이터 전송에 30초를 초과하게 되면 다운로드가 실패하게 됩니다.

 

해결

해결은 redash docker-compose.yml 에서 server 아래 environment부분에 GUNICORN_CMD_ARGS: "--timeout 300"를 추가하면 됩니다. 시간의 경우 사용자에 맞게 설정하면 됩니다.

설정 후 docker-compose restart를 통해 도커를 재시작 하고 다운로드를 받게되면 아래와 같이 성공하는 것을 볼 수 있습니다.

반응형

'데이터엔지니어 > redash' 카테고리의 다른 글

#2 redash v8 -> v10 upgrade  (0) 2022.07.10
#1 가상머신(virtualbox)를 통한 redash 설치  (0) 2022.06.29
반응형

문제

python을 통한 gmail 보내기 테스트 중 아래와 같은 에러가 발생하였습니다.  2022년 5월 30일 부로 바뀐 구글 정책으로 인해 발생한 것 같습니다.

 

 

해결

1. 구글계정 접속

2. Google 계정관리(오른쪽 위 프로필 클릭)

3. 왼쪽 탭에 있는 보안 클릭

4. 2단계 인증 클릭 후 인증을 통한 활성화

5. 인증 후 다시 보안탭을 클릭 하면 아래 앱 비밀번호가 보입니다

 

6. 앱 비밀번호 클릭 후 앱 선택 기타 

7. Python 입력 후 생성

8. 생성 후 로그인 비밀번호 대신 기기용 앱 비밀번호 입력

9.메일이 정상적으로 보내지는 것을 확인할 수 있습니다.

반응형

+ Recent posts