실제 데이터의 스키마와 일치하는 합성 데이터를 생성할 수도 있습니다. 합성 데이터는 테스트 및 개발 환경에 유용합니다.
이 튜토리얼에서는 Atlas cluster 에 연결하고 Node.js 및 faker.js를 사용하여 합성 데이터를 생성합니다. 자세한 학습 은 Fker JavaScript Docs참조하세요.
전제 조건
이 튜토리얼의 단계를 사용하여 합성 데이터를 생성하려면 다음을 수행해야 합니다.
데이터를 로드할 Atlas cluster 를 만듭니다. 학습보려면 클러스터 유형을 참조하세요.
npm install --save-dev @faker-js/faker
절차
클러스터에서 합성 데이터를 생성하려면 다음 단계를 따릅니다.
Node.js 앱을 생성합니다.
다음 명령을 실행하여 앱 디렉토리를 만들고 이동합니다.
mkdir syntheticdata cd syntheticdata 다음 명령을 실행하여 프로젝트를 초기화하고
npm
에 연결합니다.npm init entry point: (index.js)
를 제외한 모든 기본값을 수락하려면Enter
을 누릅니다. 터미널이entry point: (index.js)
을 반환하면 이 텍스트를 입력하고Enter
를 누릅니다.myapp.js 모든 기본값을 계속 수락하고 메시지가 표시되면
Yes
를 입력합니다.다음 명령을 실행하여 웹 애플리케이션 프레임워크인
express
를 설치합니다.npm install express --save 생성한 디렉토리에서 이름이
myapp.js
인 파일을 생성합니다.
합성 데이터를 생성하는 코드를 추가합니다.
myapp.js
파일에 다음 코드를 추가합니다. 다음 자리 표시자 값을 원하는 값으로 바꾸고 파일 내용을 저장합니다.
<YOUR-ATLAS-URI>
:string Atlas cluster에 대한 연결 입니다. 연결 string 을 찾는 방법을 알아보려면 MongoDB Atlas 연결 string 찾기를 참조하세요.<DATABASE-NAME>
: Atlas에서 생성할 데이터베이스의 이름입니다.<COLLECTION-NAME>
: Atlas에서 생성할 컬렉션의 이름입니다.
// require the necessary libraries const { faker } = require("@faker-js/faker"); const MongoClient = require("mongodb").MongoClient; function randomIntFromInterval(min, max) { // min and max included return Math.floor(Math.random() * (max - min + 1) + min); } async function seedDB() { // Connection URL const uri = "<YOUR-ATLAS-URI>"; const client = new MongoClient(uri); try { await client.connect(); console.log("Connected correctly to server"); const collection = client.db("<DATABASE-NAME>").collection("<COLLECTION-NAME>"); // make a bunch of time series data let timeSeriesData = []; for (let i = 0; i < 5000; i++) { const firstName = faker.person.firstName(); const lastName = faker.person.lastName(); let newDay = { timestamp_day: faker.date.past(), cat: faker.lorem.word(), owner: { email: faker.internet.email({firstName, lastName}), firstName, lastName, }, events: [], }; for (let j = 0; j < randomIntFromInterval(1, 6); j++) { let newEvent = { timestamp_event: faker.date.past(), weight: randomIntFromInterval(14,16), } newDay.events.push(newEvent); } timeSeriesData.push(newDay); } await collection.insertMany(timeSeriesData); console.log("Database seeded with synthetic data! :)"); } catch (err) { console.log(err.stack); } } seedDB();
예를 들어 코드에는 synthetic-data-db
데이터베이스와 synthetic-data-collection
컬렉션을 지정하는 다음 줄이 포함될 수 있습니다.
const collection = client.db("synthetic-data-db").collection("synthetic-data-collection");
이 코드는 고양이에 대한 time series 컬렉션 생성하고 각 문서에 다음 필드를 추가하고 faker.js:의 합성 데이터로 필드를 채웁니다.
timestamp_day
cat
owner.email
owner.firstName
owner.lastName
events
코드의 필드와 값을 데이터와 일치하는 필드와 값으로 바꿀 수 있습니다. Faker.js 에서 사용 가능한 필드에 대해 자세히 학습 Fker API 참조를 참조하세요.
AtlasGo Atlas 에서 프로젝트 의 Data Explorer 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Database 제목 아래의 Data Explorer를 클릭합니다.
데이터 탐색기 가 표시됩니다.
참고
Clusters 페이지로 이동하여 Shortcuts 제목 아래의 Data Explorer 을 클릭할 수도 있습니다.