반응형
K8s클러스터에 구성된 MongoDB(DocumentDB) 에서 데이터를 추출하는 방법에 대해 설명합니다.
로컬에서 K8s에 접근하여 pod를 띄워 mongo db 내부 데이터를 복사하는 순서는 아래와 같습니다.
1. mongosh을 사용할 수 있는 pod를 하나 띄우고 내부에 접속한다.
2. 내부에서 mongosh을 이용해서 데이터베이스에 접근한다.
3. 데이터를 조회하여 변수에 담는다.
4. 해당 변수를 javascript를 이용해서 pod 로컬에 저장 한다.
5. pod로 부터 로컬에 파일을 복사한다.
순서에 맞게 명령어를 통해 확인해봅시다.
로컬과 Pod 내부에서 진행되는 내용이 헷갈릴 수 있으므로 잘 확인하며 진행하면 될 것이다.
* 명령어 실행 전, 먼저 mongo 도커 이미지가 필요하다.
1
|
docker pull mongo
|
cs |
In Local
1
|
kubectl run curl --image=mongo
|
cs |
In Pod(curl)
1
2
|
mongosh "mongodb://admin:password@mongo-db.docdb.amazonaws.com:27017/?retryeWrites=false"
|
cs |
In mongosh in Pod
1
2
3
4
5
6
7
8
9
10
11
|
use user-data
show collections
# 특정날짜 데이터 조회하기
var result = db.user.find({timestampe: {$gte:('2023-12-01T00:00:00.000Z'), $lte: ('2023-12-31T23:59:59.999Z')} })
result.count()
var resultArray = result.toArray();
var jsonResult = JSON.stringify(resultArray, null, 2);
require('fs').writeFileSync('/home/output.json', jsonResult);
exit
|
cs |
In Pod(curl)
1
2
3
|
ls -al /home/
- output.json
exit
|
cs |
In Local
1
|
kubectl cp curl:/home/output.json output.json
|
cs |
반응형
'Programming' 카테고리의 다른 글
[Git] Missing or invalid credentials 에러 해결 (0) | 2022.12.29 |
---|---|
[Jupyter Notebook] Jupyter Notebook 소스코드 숨기기(w/ 토글 버튼) (0) | 2022.02.07 |
[챗봇] 카카오톡 i 오픈 빌더로 카카오톡 챗봇 만들기(시나리오 생성) (0) | 2021.08.09 |
[챗봇] 카카오톡 챗봇 만들기 - 카카오 i open builder OBT(오픈빌더) 신청하기 (0) | 2021.08.08 |
[챗봇] 카카오톡 i 오픈 빌더로 카카오톡 챗봇 만들기(노서버, 노코딩) (0) | 2021.08.08 |
댓글