DocumentDB-데이터베이스 만들기

이 장에서는 데이터베이스를 만드는 방법을 배웁니다. Microsoft Azure DocumentDB를 사용하려면 DocumentDB 계정, 데이터베이스, 컬렉션 및 문서가 있어야합니다. 이미 DocumentDB 계정이 있습니다. 이제 데이터베이스를 만들려면 두 가지 옵션이 있습니다.

  • Microsoft Azure 포털 또는
  • .Net SDK

Microsoft Azure Portal을 사용하여 DocumentDB 용 데이터베이스 만들기

포털을 사용하여 데이터베이스를 생성하는 단계는 다음과 같습니다.

Step 1 − Azure Portal에 로그인하면 대시 보드가 표시됩니다.

Step 2 − 이제 생성 된 DocumentDB 계정을 클릭하면 다음 스크린 샷과 같은 세부 정보가 표시됩니다.

Step 3 − 데이터베이스 추가 옵션을 선택하고 데이터베이스의 ID를 제공하십시오.

Step 4 − 확인을 클릭합니다.

데이터베이스가 추가 된 것을 볼 수 있습니다. 현재는 컬렉션이 없지만 나중에 JSON 문서를 저장할 컨테이너 인 컬렉션을 추가 할 수 있습니다. ID와 리소스 ID가 모두 있습니다.

.Net SDK를 사용하여 DocumentDB 용 데이터베이스 만들기

.Net SDK를 사용하여 데이터베이스를 생성하는 단계는 다음과 같습니다.

Step 1 − 마지막 장에서 Visual Studio에서 콘솔 응용 프로그램을 엽니 다.

Step 2− 새로운 데이터베이스 개체를 생성하여 새로운 데이터베이스를 생성합니다. 새 데이터베이스를 만들려면 CreateDatabase 작업에서 "mynewdb"로 설정하는 Id 속성 만 할당하면됩니다.

private async static Task CreateDatabase(DocumentClient client) {
   Console.WriteLine(); 
   Console.WriteLine("******** Create Database *******");
	
   var databaseDefinition = new Database { Id = "mynewdb" }; 
   var result = await client.CreateDatabaseAsync(databaseDefinition); 
   var database = result.Resource;
	
   Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId); 
   Console.WriteLine("******** Database Created *******"); 
}

Step 3− 이제이 databaseDefinition을 CreateDatabaseAsync에 전달하고 Resource 속성으로 결과를 반환합니다. 모든 create object 메서드는 생성 된 항목을 설명하는 Resource 속성 (이 경우 데이터베이스)을 반환합니다.

Resource 속성에서 새 데이터베이스 개체를 가져 오면 DocumentDB가 할당 한 리소스 ID와 함께 콘솔에 표시됩니다.

Step 4 − 이제 DocumentClient를 인스턴스화 한 후 CreateDocumentClient 작업에서 CreateDatabase 작업을 호출합니다.

using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) { 
   await CreateDatabase(client); 
}

다음은 지금까지의 완전한 Program.cs 파일입니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo {

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
		
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
			
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
         Console.ReadKey();
      }
		
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
            await CreateDatabase(client);
         } 
      }
		
      private async static Task CreateDatabase(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine("******** Create Database *******");
			
         var databaseDefinition = new Database { Id = "mynewdb" };
         var result = await client.CreateDatabaseAsync(databaseDefinition);
         var database = result.Resource;
			
         Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId);
         Console.WriteLine("******** Database Created *******");
      }
		
   } 
}

위의 코드가 컴파일되고 실행되면 데이터베이스 및 리소스 ID가 포함 된 다음 출력이 표시됩니다.

******** Create Database ******* 
 Database Id: mynewdb; Rid: ltpJAA== 
******** Database Created *******