Learn
-
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..
-
2. 설치, 기초명령어 1편Learn/Docker 2021. 4. 25. 00:03
[ 설치하기 ] install은 어렵지 않다. curl -s https://get.docker.com/ | sudo sh docker 명령어를 날리면 아래와 같은 메시지가 나오는데, 지금까지 생각없이 그냥 sudo 넣어서 써왔다. "Got permission denied while trying to connect to the Docker daemon socket...." 간단하게 유저 권한을 넣어주면 해방 (터미널 끄고 다시 열어야 적용됨) sudo usermod -aG docker ${userid} 윈도우는 docker for windows를 쓰면 편한데, 가상머신 위에 올린다. (Hyper-V) 내가 쓰는 도커는 내부적으로 호스트와 클라이언트가 나뉘어있다. 내가 명령어를 치는곳은 클라이언트고, 실제론..