전체 글
-
2. 설치 및 셋업 (WSL2 / Docker / Airflow)Learn/Airflow 2021. 11. 9. 23:28
데이터를 흘려보내긴 쉽지 않지만 그래도 설치는 해봐야하지 않겠는가! 설치는 당연히 docker위에 올리는게 나을 것 같다. (유지보수, 재설치 비용 등을 감안하여..) 리눅스 환경은 어렵게 가지말고 윈도우의 wsl을 써보기로 했다. 일단 Windows 기능 켜기/끄기에서 Linux 관련 기능을 켜준 후 Microsoft Store에서 Ubuntu를 찾아서 설치해주면 된다. 도커는 이미 정리했으니 참고 https://push-and-sleep.tistory.com/4?category=863590 settings > resources > wsl integration에서 ubuntu가 나오지 않는다. ubuntu를 지운 후 다시 설치하니 이제 잡힌다. 그러고나서 해보니 잘 된다. 참고: https://www...
-
1. Airflow 소개Learn/Airflow 2021. 11. 8. 11:03
나는 입사 후 4년 정도는 Splunk라는 상용툴을 통해 데이터 수집, 처리, 분석을 진행해왔다. Splunk는 훌륭한 도구지만 치명적인 단점은... 유료! 아쉽지만 그 조직을 떠난 이후 다른 조직에선 Splunk를 쓸 수 없었다. 빅데이터 조직에선 숙명적으로 늘 만나는게 Airflow이다. 나는 그간 분석가였고, 데이터 엔지니어링을 하는 어느곳에서 만든 Airflow를 이해하는 정도의 수준의 작업만 해왔다. 누가 만들었나, 언제 만들었나, 어떤 회사가 쓰나..이런건 생략하고 Airflow는 어떤 문제를 해결해줄까? 잘 정리된 자료를 하나 인용하자면 아래와 같다. Failures Monitoring Dependencies Scalability Deployment Process historic data 이..
-
Pandas 2부Learn/머신러닝 2021. 5. 26. 00:07
[groupby & aggregation] Pandas로 데이터 핸들링을 하는 사람이면 너~~ 무 많이 쓰는 함수라 기본은 생략. SQL에서는 agg함수를 쓸 때 아래와 같이 여러 가지를 한번에 쓸 수 있다. SELECT MAX(device_price), MIN(device_price) FROM table_name GROUP BY usr_id pandas에서는 groupby에서는 agg함수를 써야된다. # 변수 1개에 대해 여러 개 agg df.groupby('usr_id')['price'].agg([max, min]) # 변수 여러 개에 대해 여러 개 agg agg_dict = {'price':'max', 'size':'min', 'weight':'mean'} df.groupby('usr_id').ag..
-
Pandas 1부Learn/머신러닝 2021. 5. 25. 01:02
pandas는 벌써 쓴지 4년정도 되어가니 기초적인건 생략하자. 잘 안써왔는데 앞으로 쓰면 좋을 것들 info -> null 분포 대략적으로 보기 좋은듯 value_counts --> 생각없이 groupby.count 때려왔는데 미련한 짓이었다. [drop] drop은 딱히 안썼던지라 왜 그럴까 생각해봤는데, 작업하면서 row를 딱히 지울일이 없고 (보통 조건을 걸어서 걸러내니까) col을 지울떄는 del을 써왔다는 사실을 인지했다. 참고로 drop vs del은 큰 차이는 없는데 재밌는 stackoverflow 글을 발견했다. 결론은 drop이 del보다 더 빠르다는것. 앞으론 drop을 써보자. https://stackoverflow.com/questions/47426089/python-del-vs-..
-
ndarrayLearn/머신러닝 2021. 5. 7. 14:27
pandas를 쓰다보면 늘 함께 다루게되는 ndarray. (늘 에러메시지와 만나는 친구..) array는 생소한 개념이 아니므로 특이점 위주로만 살펴보려한다. ndarray는 여러 타입이 섞일 수 없다. list의 경우는 여러 타입이 섞여도 되므로 [1, 2, 'text'] 같은 형태가 가능하다. 그러나 ndarray는 이게 허용되지 않고, 자동으로 ['1', '2', 'text'] 형태로 바뀐다. arange(range) array + range를 arange로 쓴다. np.arange(5) 을 하면 [0, 1, 2, 3, 4] 가 생성된다. zeros, ones 직관적이다. shape을 주면 0, 1로 가득 채운다. reshape (★) 사이즈를 변경해준다. 다만 원본과 변환의 element 수는 ..
-
5. 이미지 만들고 배포하기Learn/Docker 2021. 4. 29. 00:39
도커 이미지는 읽기 가능 영역과 쓰기 가능 영역으로 나뉜다. 가령 우분투나 mysql이미지 자체는 바꿀 수 없지만 거기에 뭔가 수정을 한 것은 이미지로 저장할 수 있다. [ docker commit ] 가령 이미지에 git을 추가하고싶으면, 우분투 이미지를 run해서 컨테이너의 bash를 띄우고 apt로 git을 설치하면 된다. 이렇게 기존의 우분투 이미지에 git을 추가로 설치한 이미지를 만들고 싶다면? 아래와 같이 tag를 바꿔서 commit할 수 있다. docker commit git ubuntu:git {유저이름}/{이미지이름}:{태그} 와 같은 형태의 이미지는 유저가 만든 이미지이고, 앞에 {유저이름}이 없는게 공식 이미지라고 보면 된다. [ docker build ] 위에서 사용한 docker..
-
4. ComposeLearn/Docker 2021. 4. 26. 23:15
앞에서 공부할때 mysql을 띄울때 아래와 같이 했다. docker run -d -p 3306:3306 \ -e MY_SQL_ALLOW_EMPTY_PASSWORD=true \ --network=app-network \ --name mysql \ -v /my/own/datadir:/var/lib/mysql \ mysql:5.7 뭐 도커를 안쓸때보다야 편하지만 저것도 길고 실수할 가능성도 있고 불편하다. docker compose 설치는 아래 링크 보고 하면 된다. docs.docker.com/compose/install/ Install Docker Compose docs.docker.com 윈도우는 docker 설치하면 같이 설치되는듯하고, 리눅스는 따로 깔아줘야한다. docker compose가 있으면 ..
-
3. 기초명령어 2편Learn/Docker 2021. 4. 26. 00:36
[ 기초명령어 2 ] 실행되고 있는 프로세스 살펴보기. (중단된것도 보려면 -a) docker ps 실행되고 있는 컨테이저 중지시키려면 docker stop ${CONTAINER_ID} 로그보기. (대기하면서 추가로그 받으려면 -f) docker logs ${CONTAINER_ID} 다운로드한 이미지 보기 docker images 이미지 가져오기 (run하면 자동으로 가져오긴함) docker pull ubuntu:18.04 이미지 삭제. 단, 실행중인 이미지는 못지움. docker rmi ${IMAGE_ID} 컨테이너끼리 이름으로 통신할 수 있는 가상 네트워크 만들기 docker network create ${NETWORK_NAME} 특정 컨테이너에 네트워크 추가하기 docker network conne..