Couchbase 6.6에는 Couchbase 관리자 웹 콘솔을 사용하여 문서 가져오기라는 매우 필요한 기능이 포함되어 있습니다. 이 기능을 사용하면 문서를 빠르게 가져올 수 있습니다. 작은 다양한 형식의 데이터 세트를 보완할 수 있습니다. cbimport 는 훨씬 더 많은 데이터 가져오기 옵션을 갖춘 보다 포괄적인 명령줄 솔루션입니다.
이 블로그 게시물에서는 데이터 가져오기 시 몇 가지 사용 사례와 몇 가지 문제점을 살펴봅니다.
기능 확인
문서 가져오기는 다음을 클릭하여 액세스할 수 있습니다. 문서 링크와 왼쪽 패널의 문서 가져오기 버튼을 클릭합니다.
필드는 모두 설명이 필요 없지만, 기능을 시연하기 위해 5줄에 불과한 작은 데이터 집합을 가져오는 방법을 살펴보겠습니다. 저는 이 기능을 시연하기 위해 노트북에 서로 다른 형식의 파일 4개를 만들었습니다. 반드시 빈 대상 버킷이 필요한 것은 아니지만, 이 테스트에서는 다음과 같은 버킷을 만들었습니다. 테스트 아직 문서가 없습니다.
JSON List 데이터세트를 가져와 보겠습니다.
- 나는 가져올 파일 선택 버튼을 클릭하고 airport.json내 노트북에 5개의 JSON 문서가 있는 파일을 만들었습니다.
- 실제로 데이터를 가져오기 전에 화면에 다음과 같은 샘플이 표시됩니다. 파일 내용 를 다른 형식으로 표시합니다. 이것은 빠른 확인용으로 사용됩니다.
- 다음으로 키 를 가져오는 동안 문서의 문서 ID로 가져오기 라디오 버튼. 선택 사항은 다음과 같습니다. UUID, 또는 가능한 경우 필드 값.
- 필드 값 선택 시 참고 사항:
- 이 필드는 모든 문서에 널이 아닌 고유한 값으로 있어야 합니다.
- T도구는 모든 문서에서 후보 ID 필드가 고유한 값을 갖도록 보장하지 않습니다. 가져오기 UI는 필드가 다음과 같은지 여부만 확인합니다. 현재 를 모든 문서에 입력하세요.
- 중복된 값이 있는 ID 필드를 선택하면 이전 문서는 동일한 ID를 가진 새 문서로 덮어쓰게 됩니다.
- 지금은 UUID 를 선택하고 가져오기를 진행합니다.
- 필드 값 선택 시 참고 사항:
- 다음으로 다음을 선택했습니다. 테스트 내 대상 버킷.
- 그런 다음 데이터 가져오기 버튼을 클릭합니다.
가져오기가 성공하고 가져온 문서 수 또한 팝업 상자에 표시됩니다.
화면에는 유용한 cbimport 명령을 사용하여 데이터 크기가 큰 경우에 대비하세요.
동일한 문서 집합을 가져오되 이번에는 문서 집합의 필드 값 이렇게요:
선택하겠습니다. id.
이제 동일한 문서 세트를 두 번 가져왔지만 서로 다른 키를 클릭하면 이제 버킷에 10개의 문서가 있습니다. 이제 버킷의 문서 편집기 버튼의 파란색 패널을 클릭합니다.
여기에는 10개의 문서, 5개가 한 세트인 id 필드를 문서 키로 사용하고 서버에서 생성한 UUID를 키로 하는 5개의 다른 집합을 사용합니다.
문서 하나를 살펴보겠습니다:
좋아 보이네요.
추가 테스트
동일한 데이터 집합을 다른 형식으로 가져오는 것을 테스트할 수도 있습니다.
파일 형식
JSON 목록
JSON 목록은 쉼표로 구분된 JSON 객체(중괄호로 표시)를 원하는 수만큼 나열한 목록(대괄호로 표시)입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[ { "공항명": "칼레 덩케르크", "city": "Calais", "country": "프랑스", "faa": "CQF", "geo": { "alt": 12, "lat": 50.962097, "lon": 1.954764 }, "icao": "LFAC", "id": 1254, "type": "공항", "tz": "유럽/파리" }, .... { "공항명": "Bray", "city": "Albert", "country": "프랑스", "faa": null, "geo": { "alt": 364, "lat": 49.971531, "lon": 2.697661 }, "icao": "LFAQ", "id": 1258, "type": "공항", "tz": "유럽/파리" } ] |
JSON 라인
JSON 줄은 각 줄마다 해당 줄에 별도의 완전한 JSON 객체가 있는 파일입니다.
1 2 3 4 5 |
{"공항명":"페론 세인트 쿠엔틴","city":"페론","country":"프랑스","faa":null,"geo":{"alt":295,"lat":49.868547,"lon":3.029578},"icao":"LFAG","id":1255,"type":"공항","tz":"유럽/파리"} {"공항명":"Bray","city":"Albert","country":"프랑스","faa":null,"geo":{"alt":364,"lat":49.971531,"lon":2.697661},"icao":"LFAQ","id":1258,"type":"공항","tz":"유럽/파리"} {"공항명":"칼레 덩케르크","city":"Calais","country":"프랑스","faa":"CQF","geo":{"alt":12,"lat":50.962097,"lon":1.954764},"icao":"LFAC","id":1254,"type":"공항","tz":"유럽/파리"} {"공항명":"레 로그","city":"Nangis","country":"프랑스","faa":null,"geo":{"alt":428,"lat":48.596219,"lon":3.006786},"icao":"LFAI","id":1256,"type":"공항","tz":"유럽/파리"} {"공항명":"Couterne","city":"바뇰레 드 로르네","country":"프랑스","faa":null,"geo":{"alt":718,"lat":48.545836,"lon":-0.387444},"icao":"LFAO","id":1257,"type":"공항","tz":"유럽/파리"} |
CSV(쉼표로 구분된 변수)
1 2 3 4 5 6 |
공항명,도시,국가,faa,geo.alt,geo.위도,geo.lon,icao,id,유형,tz "칼레 덩케르크","Calais","프랑스","CQF",12,50.962097,1.954764,"LFAC",1254,"공항","유럽/파리" "페론 세인트 쿠엔틴","페론","프랑스","null",295,49.868547,3.029578,"LFAG",1255,"공항","유럽/파리" "레 로그","Nangis","프랑스",null,428,48.596219,3.006786,"LFAI",1256,"공항","유럽/파리" "Couterne","바뇰레 드 로르네","프랑스",null,718,48.545836,-0.387444,"LFAO",1257,"공항","유럽/파리" "Bray","Albert","프랑스",null,364,49.971531,2.697661,"LFAQ",1258,"공항","유럽/파리" |
참고:
- CSV 형식은 JSON 데이터를 '플랫화'하며 배열이나 중첩된 값을 지원하지 않습니다.
- CSV 형식에는 null 값을 지원하는 잘 정의된 방법이 없습니다. CSV의 문자열 값은 선택적으로 따옴표로 묶여 있으므로 문자열 'null'과 값 null을 구별하는 표준 방법이 없습니다. 따라서 CSV 데이터 집합에서 가져온 후 null 값은 "null"이라는 문자열로 가져옵니다.
TSV(탭으로 구분된 변수)
1 2 3 4 5 6 |
공항명 도시 국가 faa geo.alt geo.위도 geo.lon icao id 유형 tz "칼레 덩케르크" "Calais" "프랑스" "CQF" 12 50.962097 1.954764 "LFAC" 1254 "공항" "유럽/파리" "페론 세인트 쿠엔틴" "페론" "프랑스" null 295 49.868547 3.029578 "LFAG" 1255 "공항" "유럽/파리" "레 로그" "Nangis" "프랑스" null 428 48.596219 3.006786 "LFAI" 1256 "공항" "유럽/파리" "Couterne" "바뇰레 드 로르네" "프랑스" null 718 48.545836 -0.387444 "LFAO" 1257 "공항" "유럽/파리" "Bray" "Albert" "프랑스" null 364 49.971531 2.697661 "LFAQ" 1258 "공항" "유럽/파리" |
참고:
- TSV 형식은 JSON 데이터를 '플랫화'하며 배열이나 중첩된 값을 지원하지 않습니다.
- TSV 형식에는 null 값을 지원하는 잘 정의된 방법이 없습니다. TSV의 문자열 값은 선택적으로 따옴표로 묶여 있으므로 문자열 "null"과 null 값을 구별하는 표준 방법이 없습니다. 따라서 CSV 데이터 집합에서 가져온 후 null 값은 "null"이라는 문자열로 가져옵니다.