빠른 팁: MongoDB JSON 데이터를 SingleStoreDB로 이동

추상적인



SingleStoreDB는 다중 모델 데이터베이스 시스템이며 JSON 데이터를 저장하고 쿼리하는 기능을 지원합니다. 이 기사에서는 JSON 데이터베이스 덤프를 MongoDB에서 SingleStoreDB로 이동하는 것이 얼마나 쉬운지 알아봅니다.

소개



MongoDB는 데이터베이스 제품에 대한 몇 가지 샘플 데이터 세트를 제공합니다. 이 기사에서는 이러한 데이터 세트 중 하나를 가져와 SingleStoreDB로 쉽게 가져올 수 있는 방법을 살펴보겠습니다.

SingleStoreDB 클라우드 계정 생성



A는 무료 SingleStoreDB Cloud 계정을 만드는 데 필요한 단계를 보여주었습니다. JSON 데모 그룹을 작업 공간 그룹 이름으로 사용하고 json-demo를 작업 공간 이름으로 사용합니다. 암호와 호스트 이름을 기록해 둡니다.

MongoDB 데이터 세트



MongoDB의 restaurants 데이터 세트를 사용합니다. GitHub에서 널리 찾을 수 있습니다. 구조는 상당히 평평합니다. 다음은 데이터 세트의 예입니다.

{
   "URL":"http://www.just-eat.co.uk/restaurants-cn-chinese-cardiff/menu",
   "_id":{
      "$oid":"55f14312c7447c3da7051b26"
   },
   "address":"228 City Road",
   "address line 2":"Cardiff",
   "name":".CN Chinese",
   "outcode":"CF24",
   "postcode":"3JH",
   "rating":5,
   "type_of_food":"Chinese"
}


SingleStoreDB는 문서 Using SingleStore as a JSON Document Database에 표시된 것처럼 더 복잡한 JSON을 처리할 수 있습니다.

SingleStoreDB에 JSON 데이터 로드



먼저 MySQL 클라이언트를 사용하여 SingleStoreDB 클라우드에 연결해 보겠습니다.

mysql --local-infile \
      -u admin \
      -h <host> \
      -P 3306 \
      --default-auth=mysql_native_password \
      -p

<host>는 SingleStoreDB Cloud에서 얻은 값으로 대체됩니다.

이제 데이터베이스를 생성합니다.

CREATE DATABASE json_demo;


JSON 데이터를 SingleStoreDB로 로드할 때 사용할 수 있는 몇 가지 옵션이 있습니다. 이 기사에서 두 가지 가능성을 살펴보겠습니다.

1. 단일 테이블 열에 JSON 데이터 저장



이 옵션에서 JSON 데이터의 각 행은 단일 테이블 열에 저장됩니다.

먼저 데이터베이스 테이블을 만듭니다.

USE json_demo;

CREATE TABLE test1 (
    whole JSON NOT NULL
);

NOT NULL 를 사용하면 유효하지 않은 JSON을 저장하려는 시도가 있는 경우 SingleStoreDB에서 오류가 발생합니다.

다음으로 JSON 데이터를 다음과 같이 로드합니다.

LOAD DATA LOCAL INFILE '/path/to/restaurants.json'
INTO TABLE test1
FORMAT JSON (
    whole <- %
);

/path/to/를 JSON 파일이 있는 실제 경로로 바꿉니다.

다음과 같이 테이블을 쿼리할 수 있습니다.

SELECT * FROM test1 LIMIT 1\G


결과는 다음과 유사해야 합니다.

*************************** 1. row ***************************
whole: {"URL":"http://www.just-eat.co.uk/restaurants-007takeaway-s65/menu","_id":{"$oid":"55f14312c7447c3da7051b2b"},"address":"6 Drummond Street","address line 2":"Rotherham","name":"007 Takeaway","outcode":"S65","postcode":"1HY","rating":6,"type_of_food":"Pizza"}


2. 여러 테이블 열에 JSON 데이터 저장



이 옵션에서 JSON 데이터의 각 행은 여러 테이블 열에 저장됩니다.

먼저 데이터베이스 테이블을 만듭니다.

CREATE TABLE test2 (
    URL TEXT,
    id JSON NOT NULL,
    address1 TEXT,
    address2 TEXT,
    name TEXT,
    outcode TEXT,
    postcode TEXT,
    rating FLOAT,
    type_of_food TEXT
);


여기서는 초기 테스트를 위한 많은 필드에 TEXT를 사용했습니다.

다음으로 JSON 데이터를 다음과 같이 로드합니다.

LOAD DATA LOCAL INFILE '/path/to/restaurants.json'
INTO TABLE test2
FORMAT JSON (
    URL <- URL default "",
    id <- _id,
    address1 <- address default "",
    address2 <- `address line 2` default "",
    name <- name default "",
    outcode <- outcode default "",
    postcode <- postcode default "",
    rating <- rating default NULL,
    type_of_food <- type_of_food default ""
);


다음과 같이 테이블을 쿼리할 수 있습니다.

SELECT * FROM test2 LIMIT 1\G


결과는 다음과 유사해야 합니다.

*************************** 1. row ***************************
         URL: http://www.just-eat.co.uk/restaurants-328chineseonline-cf81/menu
          id: {"$oid":"55f14312c7447c3da7051b55"}
    address1: 2-4 Commercial Street
    address2: Aberbargoed
        name: 328 Chinese Online
     outcode: CF81
    postcode: 9BW
      rating: 5
type_of_food: Chinese


요약



SingleStoreDB는 JSON 데이터를 지원하는 매우 유능하고 유연한 데이터베이스 제품입니다. 이 짧은 기사에서는 MongoDB JSON 데이터를 SingleStoreDB에 저장하는 두 가지 옵션을 살펴보았습니다. documentation에는 자세한 내용과 예제가 포함되어 있습니다.

좋은 웹페이지 즐겨찾기