Atlas ํด๋ฌ์คํฐ
์ด ํ์ด์ง์ ๋ด์ฉ
Atlas Data Federation์ Atlas cluster๋ฅผ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์๋ก ์ง์ํฉ๋๋ค. ๋ฐ์ดํฐ์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ค๋ฉด ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์์ Atlas cluster์ ๋ํ ๋งคํ์ ์ ์ํด์ผ ํฉ๋๋ค.
์ค์
์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์ ์ ๋ณด๋ MongoDB์์ ๋ด๋ถ์ ์ผ๋ก ๋ณผ ์ ์์ผ๋ฉฐ, Atlas Data Federation์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ฐ์ ํ๊ธฐ ์ํด ์ด์ ๋ฐ์ดํฐ๋ก ์ ์ฅ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๊ตฌ์ฑ์์ PII ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
Atlas ๋ฐ์ดํฐ ์ ์ฅ์ ๊ตฌ์ฑ ์์
์์
metrics.hardware
์ปฌ๋ ์
์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ myDataCenter
์ด)๋ผ๋ ์ด๋ฆ์ M10
์ด์์ Atlas cluster๋ฅผ ์๊ฐํด ๋ณด์ธ์. metrics.hardware
์ปฌ๋ ์
์๋ ๋ฐ์ดํฐ ์ผํฐ์ ํ๋์จ์ด์์ ํ์๋ ์งํ๊ฐ ์๋ JSON ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ค์ ๊ตฌ์ฑ:
์ง์ ๋ ํ๋ก์ ํธ์
myDataCenter
(์ด)๋ผ๋ Atlas cluster๋ฅผ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์๋ก ์ง์ ํฉ๋๋ค.Atlas ํด๋ฌ์คํฐ์
metrics.hardware
์ปฌ๋ ์ ์ ๋ฌธ์๋ฅผ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์dataCenter.inventory
์ปฌ๋ ์ ์ผ๋ก ๋งคํํฉ๋๋ค.
{ "stores" : [ { "name" : "atlasClusterStore", "provider" : "atlas", "clusterName" : "myDataCenter", "projectId" : "5e2211c17a3e5a48f5497de3" } ], "databases" : [ { "name" : "dataCenter", "collections" : [ { "name" : "inventory", "dataSources" : [ { "storeName" : "atlasClusterStore", "database" : "metrics", "collection" : "hardware" } ] } ] } ] }
Atlas Data Federation์ metrics.hardware
collection์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์ dataCenter.inventory
collection์ ๋งคํํฉ๋๋ค.
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ์ฌ์ฉ์๋ MongoDB ์ฟผ๋ฆฌ ์ธ์ด ๋ฐ ์ง์๋๋ ์ ๊ทธ๋ฆฌ๊ฒ์ด์
์ ์ฌ์ฉํ์ฌ dataCenter.inventory
์ปฌ๋ ์
์ ํตํด Atlas cluster์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด ์ฟผ๋ฆฌ๊ฐ ๋จผ์ Atlas Data Federation์ผ๋ก ์ด๋ํฉ๋๋ค. ๋ฐ๋ผ์ Atlas cluster์์๋ ์ง์๋์ง๋ง Atlas Data Federation์์๋ ์ง์๋์ง ์๋ ์ ๊ทธ๋ฆฌ๊ฒ์ด์
์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด ์ฟผ๋ฆฌ๊ฐ ์คํจํฉ๋๋ค. Data Federation์์ ์ง์๋๋ ๋ช
๋ น๊ณผ ์ง์๋์ง ์๋ ๋ช
๋ น์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ์ง์๋๋ MongoDB ๋ช
๋ น์ ์ฐธ์กฐํ์ธ์.
๊ตฌ์ฑ ํ์
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ๊ตฌ์ฑ์ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider": "<string>", 6 "clusterName": "<string>", 7 "projectId": "<string>", 8 "readPreference": { 9 "mode": "<string>", 10 "tagSets": [ 11 [{"name": "<string>", "value": "<string>"},...], 12 ... 13 ], 14 "maxStalenessSeconds": <int> 15 } 16 } 17 ], 18 "databases" : [ 19 { 20 "name" : "<string>", 21 "collections" : [ 22 { 23 "name" : "<string>", 24 "dataSources" : [ 25 { 26 "storeName" : "<string>", 27 "database" : "<string>", 28 "databaseRegex": "<string>", 29 "collection" : "<string>", 30 "collectionRegex" : "<string>", 31 "provenanceFieldName": "<string>" 32 } 33 ] 34 } 35 ], 36 "views" : [ 37 { 38 "name" : "<string>", 39 "source" : "<string>", 40 "pipeline" : "<string>" 41 } 42 ] 43 } 44 ] 45 }
stores
stores
๊ฐ์ฒด๋ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ๊ฐ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ ์ํฉ๋๋ค. ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์๋ Atlas cluster์ ๋ฌธ์์ ํ์ผ์ ์บก์ฒํฉ๋๋ค. ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๋stores
๊ฐ์ฒด์ ์ ์๋ ๋ฐ์ดํฐ ์ ์ฅ์์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค.databases
databases
๊ฐ์ฒด๋stores
์ ์ ์๋ ๊ฐ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ MongoDB ์ปฌ๋ ์ ๊ฐ์ ๋งคํ์ ์ ์ํฉ๋๋ค.
stores
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "clusterName" : "<string>", 6 "projectId": "<string>" 7 "readPreference": { 8 "mode": "<string>", 9 "tagSets": [ 10 [{"name": "<string>", "value": "<string>"},...], 11 ... 12 ], 13 "maxStalenessSeconds": <int> 14 }, 15 "readConcern": { 16 "level": "<string>" 17 } 18 } 19 ]
stores
๊ฐ ๊ฐ์ฒด๊ฐ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด ๋ฐฐ์ด์ ๋๋ค. ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์๋ S3 ๋ฒํท์ ํ์ผ, Atlas ํด๋ฌ์คํฐ์ ๋ฌธ์ ๋๋ ๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ URL์ ์ ์ฅ๋ ํ์ผ์ ์บก์ฒํฉ๋๋ค. Atlas Data Federation์
stores
๊ฐ์ฒด์ ์ ์๋ ๋ฐ์ดํฐ ์ ์ฅ์์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค.
stores.[n].name
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์์ ์ด๋ฆ์ ๋๋ค.
databases.[n].collections.[n].dataSources.[n].storeName
ํ๋๋ ๋งคํ ๊ตฌ์ฑ์ ์ผ๋ถ๋ก ์ด ๊ฐ์ ์ฐธ์กฐํฉ๋๋ค.
stores.[n].provider
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์์น๋ฅผ ์ ์ํฉ๋๋ค. Atlas ํด๋ฌ์คํฐ์ ์ปฌ๋ ์ ์ ๋ํ ๊ฐ์
atlas
์ด์ด์ผ ํฉ๋๋ค.
stores.[n].clusterName
์คํ ์ด์ ๊ธฐ๋ฐ์ด ๋๋ Atlas cluster์ ์ด๋ฆ์ ๋๋ค. cluster๋ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์ ๋์ผํ ํ๋ก์ ํธ์ ์์ด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ ํํฐ์ ์
source
ํ๋๋ Atlas cluster์ ์ด๋ฆ์ ๋๋ค.
stores.[n].projectId
์คํ ์ด์ ๊ธฐ๋ฐ์ด ๋๋ Atlas cluster๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ ๊ณ ์ ์๋ณ์์ ๋๋ค.
stores.[n].readPreference
์ ํ ์ฌํญ. ํด๋ฌ์คํฐ ์ฝ๊ธฐ ์ค์ - ์ฝ๊ธฐ ์์ฒญ์ ํด๋ฌ์คํฐ๋ก ๋ผ์ฐํ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์์
๋ค์
readPreference
์ค์ ์secondary
๋ชจ๋ ๋ฐANALYTICS
nodeType์ ์ง์ ํฉ๋๋ค.{ ... "stores": [ { "provider": "atlas", "clusterName": <CLUSTER_NAME>, "name": <STORE_NAME>, "projectId": <PROJECT_ID>, "readPreference": { "mode": "secondary", "tagSets": [ [ { "name": "nodeType", "value": "ANALYTICS" } ], ... ] } } ] }
stores.[n].readPreference.mode
์ ํ ์ฌํญ. ์ฝ๊ธฐ ์์ฒญ์ ๋ผ์ฐํ ํ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ฅผ ์ง์ ํ๋ ์ฝ๊ธฐ ์ค์ ๋ชจ๋ ์ ๋๋ค. ๊ฐ์ ๋ค์ ์ค ํ๋์ผ ์ ์์ต๋๋ค.
primary
- ๋ชจ๋ ์ฝ๊ธฐ ์์ฒญ์ ๋ณต์ ๋ณธ ์ธํธ ํ๋ผ์ด๋จธ๋ฆฌ๋ก ๋ผ์ฐํ ํฉ๋๋ค.primaryPreferred
-primary
๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ๋ชจ๋ ์ฝ๊ธฐ ์์ฒญ์ ๋ณต์ ๋ณธ ์ธํธ ํ๋ผ์ด๋จธ๋ฆฌ ๋ฐ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ก ๋ผ์ฐํ ํฉ๋๋ค.secondary
- ๋ชจ๋ ์ฝ๊ธฐ ์์ฒญ์ ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ๋ก ๋ผ์ฐํ ํฉ๋๋ค.secondaryPreferred
-secondary
๋ฉค๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ๋ชจ๋ ์ฝ๊ธฐ ์์ฒญ์ ๋ณต์ ๋ณธ ์ธํธ์ ์ธ์ปจ๋๋ฆฌ ๋ฉค๋ฒ์ ์ค๋ ํด๋ฌ์คํฐ์ ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ๋ก ๋ผ์ฐํ ํฉ๋๋ค.nearest
- ๋ฉค๋ฒ๊ฐ ํ๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ์ธ์ง ์ธ์ปจ๋๋ฆฌ๋ฉค๋ฒ์ธ์ง์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฝ๊ธฐ ์์ฒญ์ ์์์ ์ ๊ฒฉ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
์๋ตํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์
local
์ ๋๋ค.
stores.[n].readPreference.tagSets
์ ํ ์ฌํญ. ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๋ํ ์ด๋ฆ ๋ฐ ๊ฐ ์์ด ํฌํจ๋ ํ๊ทธ ์ธํธ ๋๋ ํ๊ทธ ์ฌ์ ๋ฌธ์์ ๋ฐฐ์ด์ ๋๋ค. ์ง์ ๋ ๊ฒฝ์ฐ Atlas Data Federation์ ์ง์ ๋ ํ๊ทธ์ ์ฐ๊ฒฐ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ก ์ฝ๊ธฐ ์์ฒญ์ ๋ผ์ฐํ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ธฐ๋ณธ ์ค์ ํ๊ทธ ์ธํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
Atlas Data Federation์ cluster์ ๋ํด
tagSets
์(๋ฅผ) ์ง์ํ์ง ์์ต๋๋ค.
stores.[n].readPreference.maxStalenessSeconds
์ ํ ์ฌํญ. ์ธ์ปจ๋๋ฆฌ์์ ์ฝ๊ธฐ์ ๋ํ ์ต๋ ๋ณต์ ์ง์ฐ ๋๋ '๋นํ์ฑ ์ํ'์ ๋๋ค.
maxStalenessSeconds
์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ์ฝ๊ธฐ ์ค์ maxStalenessSeconds๋ฅผ ์ฐธ์กฐํ์ธ์.
stores.[n].readConcern
์ ํ ์ฌํญ. Atlas cluster์์ ์ฝ์ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ๋ฐ ๊ฒฉ๋ฆฌ ์์ฑ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ๊ณ ๋ ค ๋ฅผ ์ฐธ์กฐํ์ธ์. ์ผ๊ด์ฑ ๋ฐ ๊ฐ์ฉ์ฑ ์์ค ๊ฐ์ ๋ค์ ์ค ํ๋์ผ ์ ์์ต๋๋ค.
local
- ๋ฐ์ดํฐ๊ฐ ๋๋ถ๋ถ์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๊ธฐ๋ก๋์๋ค๋ ๋ณด์ฅ ์์ด ์ธ์คํด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ '๋ก์ปฌ' ์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฐธ์กฐํ์ธ์.available
- ๋ฐ์ดํฐ๊ฐ ๋๋ถ๋ถ์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ์ ๊ธฐ๋ก๋์๋ค๋ ๋ณด์ฅ ์์ด ์ธ์คํด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ค๋ ์ปฌ๋ ์ ์์ ์ฝ์ ๋ ๊ณ ์ ๋ฌธ์ ๊ฐ ๋ฐํ๋ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ๊ณ ๋ ค '์ฌ์ฉ ๊ฐ๋ฅ'์ ์ฐธ์กฐํ์ธ์.majority
- Atlas cluster์ ์๋ ๋๋ค์์ ๋ ธ๋๊ฐ ์น์ธํ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ๊ณ ๋ ค '๋๋ค์'๋ฅผ ์ฐธ์กฐํ์ธ์.linearizable
- ์ฝ๊ธฐ ์์ ์ด ์์๋๊ธฐ ์ ์ ์๋ฃ๋ ๋ชจ๋ ์ฑ๊ณต์ ์ธ ๋๋ค์ ์น์ธ ์ฐ๊ธฐ๋ฅผ ๋ฐ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ '์ ํํ ๊ฐ๋ฅ' ์ฝ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ฐธ์กฐํ์ธ์.snapshot
- ์ต๊ทผ ๊ณผ๊ฑฐ์ ํน์ ๋จ์ผ ์์ ์ ์ค๋ ์ ์ฒด์ ๋ํ๋๋ ๋๋ค์ ์ปค๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฝ๊ธฐ ๊ณ ๋ ค ์ฌํญ '์ค๋ ์ท'์ ์ฐธ์กฐํ์ธ์.
databases
1 "databases" : [ 2 { 3 "name" : "<string>", 4 "collections" : [ 5 { 6 "name" : "<string>", 7 "dataSources" : [ 8 { 9 "storeName" : "<string>", 10 "database" : "<string>", 11 "databaseRegex": "<string>", 12 "collection" : "<string>", 13 "collectionRegex" : "<string>", 14 "provenanceFieldName": "<string>" 15 } 16 ] 17 } 18 ] 19 } 20 ]
databases
๊ฐ ๊ฐ์ฒด๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๊ฐ์ฒด์ ์ปฌ๋ ์ , ๊ทธ๋ฆฌ๊ณ ์ ํ์ ์ผ๋ก ์ปฌ๋ ์ ์ ๋ํ ๋ชจ๋ ๋ณด๊ธฐ๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด ๋ฐฐ์ด์ ๋๋ค. ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ฌ๋ฌ ๊ฐ์
collections
๋ฐviews
๊ฐ์ฒด๊ฐ ์์ ์ ์์ต๋๋ค.
databases.[n].name
Atlas Data Federation์ด ๋ฐ์ดํฐ ์ ์ฅ์์ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ๋งคํํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์
*
๋ฅผ ์ง์ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ๋์ ์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค:๋ช ์์ ์ผ๋ก ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ๊ป ์กด์ฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Atlas Data Federation์ ์ ์ฅ์ ๊ตฌ์ฑ์์ ๋ช ์์ ์ผ๋ก ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถฉ๋ํ๋ ์ด๋ฆ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ ์ผ๋ก ์์ฑํ์ง ์์ต๋๋ค.
๋จ์ผ Atlas cluster์์๋ง ๊ฐ๋ฅํฉ๋๋ค. Atlas Data Federation์ ์ฌ๋ฌ Atlas ํด๋ฌ์คํฐ ๋๋ ๊ธฐํ ๋ฐ์ดํฐ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ ์ผ๋ก ์์ฑํ์ง ์์ต๋๋ค.
databases.[n].collections
๊ฐ ๊ฐ์ฒด๊ฐ
stores
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์์ ๋งคํ๋๋ ์ปฌ๋ ์ ๋ฐ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด ๋ฐฐ์ด์ ๋๋ค. ๋์ ์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์์ ์์ผ๋์นด๋(*
) ์ปฌ๋ ์ ๊ฐ์ฒด๋ฅผ ํ๋๋ง ์ ์ํ ์ ์์ต๋๋ค.
databases.[n].collections.[n].name
๊ฐ
databases.[n].collections.[n].dataSources.[n].storeName
์ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ Atlas Data Federation์ด ๋งคํํ๋ ์ปฌ๋ ์ ์ ์ด๋ฆ์ ๋๋ค. ๋ฐฐ์ด์ ๊ฐ ๊ฐ์ฒด๋ ์ปฌ๋ ์ ๊ณผstores
๋ฐฐ์ด์ ๊ฐ์ฒด ๊ฐ์ ๋งคํ์ ๋ํ๋ ๋๋ค.์ปฌ๋ ์ ์ด๋ฆ์
*
๋ฅผ ์ง์ ํ๊ณcollection
ํ๋๋ฅผ ์๋ตํ์ฌ ์ปฌ๋ ์ ์ด๋ฆ์ ๋์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ๋์ ์ผ๋ก ์์ฑ๋ ์์ผ๋์นด๋(*
) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์์ผ๋์นด๋(*
) ์ปฌ๋ ์ ์ ๋์ ์ผ๋ก ์์ฑํ๋ ค๋ฉดdatabases.[n].collections.[n].dataSources.[n].storeName
์ต์ ์ ์ง์ ํ๊ณdatabases.[n].collections.[n].dataSources.[n].database
์ต์ ์ ์๋ตํฉ๋๋ค. ๋์ ์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์์ ์์ผ๋์นด๋(*
) ์ปฌ๋ ์ ๊ฐ์ฒด๋ฅผ ํ๋๋ง ์ ์ํ ์ ์์ต๋๋ค.์์ผ๋์นด๋(
*
) ์ปฌ๋ ์ ์ ๊ฒฝ์ฐdatabases.[n].collections.[n].dataSources.[n].collectionRegex
ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ท์ ํจํด์ ์ ์ํ์ฌ ์ปฌ๋ ์ ๋ง ํํฐ๋งํ ์๋ ์์ต๋๋ค.
databases.[n].collections.[n].dataSources
๊ฐ ๊ฐ์ฒด๊ฐ ์ปฌ๋ ์ ๊ณผ ๋งคํํ
stores
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๋๋ค.
databases.[n].collections.[n].dataSources.[n].storeName
<collection>
์ ๋งคํํ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์์ ์ด๋ฆ์ ๋๋ค.stores
๋ฐฐ์ด์ ์๋ ๊ฐ์ฒด์name
๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
databases.[n].collections.[n].dataSources.[n].database
collection์ด ํฌํจ๋ Atlas cluster์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ด ์ค์ ์ ์๋ตํด์ผ ํฉ๋๋ค.
์์ผ๋์นด๋(
*
) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์์ผ๋์นด๋(*
) collection์ ์์ฑํฉ๋๋ค.์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
databases.[n].collections.[n].dataSources.[n].databaseRegex
์ ํ ์ฌํญ. ์ฌ๋ฌ collection์ ๊ฒฐํฉํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ก๋นํ๋ ๋ฐ ์ฌ์ฉํ ์ ๊ท์ ํจํด์ ๋๋ค. ์ด ์ต์ ์ ์ง์ ํ๋ฉด ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ธ์คํด์ค์๋ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ collection์ด ์๋ ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํฌํจ๋ฉ๋๋ค. lobbbing ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
database
ํ๋๋ฅผ ์๋ตํฉ๋๋ค.databases.[n].collections.[n].dataSources.[n].collection
ํ๋์ ์ ํจํ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
์์
๋ฐ ๋ผ๋ 2๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๊ณ
foo
bar
๊ฐ๊ฐ collection ๋ผ๋ ์ปฌ๋ ์ ์ดSales
์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์databaseRegex
์ต์ ์ ์ฌ์ฉํ์ฌfoo
๋ฐbar
์Sales
์ปฌ๋ ์ ์ ๊ฒฐํฉํ ์ ์์ต๋๋ค.{ "databases": [ { "name": "Transactions", "collections": [ { "name": "AllSales", "dataSources": [ { "storeName": "atlasStore", "databaseRegex": ".*", "collection": "Sales" } ] } ] } ] } ์์
databases
๊ฐ์ฒด์ ๋ํด Atlas Data Federation์ ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์์ ๋ค์์ ์์ฑํฉ๋๋ค.Transactions
์ด๋ผ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.databaseRegex
์ต์ ์ ์ง์ ๋ ์ ๊ท์ ํจํด๊ณผ ์ด๋ฆ์ด ์ผ์นํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋Sales
collection์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋AllSales
๊ฐ์ collection์ ๋๋ค.
์ด ์ต์ ์ ์ง์ ํ๋ ๊ฒฝ์ฐ collection์ ์ด๋ฆ์ ์ง์ ํด์ผ ํฉ๋๋ค. ์์ผ๋์นด๋ collection์๋ ์ด ์ต์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
databases.[n].collections.[n].dataSources.[n].collection
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์์ ๊ธฐ๋ฐ์ด ๋๋ Atlas cluster ๋ด์ collection์ ์ด๋ฆ์ ๋๋ค. ๋ค์์ ๋ํด์๋ ์ด ์ค์ ์ ์๋ตํด์ผ ํฉ๋๋ค.
์์ผ๋์นด๋(
*
) collection์ ๋ง๋ญ๋๋ค.์ ๊ท์ ํจํด๊ณผ ์ผ์นํ๋ ์์ผ๋์นด๋ ์ปฌ๋ ์ ์ด๋ฆ ๋ง๋ค๊ธฐ.
์ ๊ท์ ํจํด์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ๋ฌ collection์ ๊ฒฐํฉํฉ๋๋ค.
databases.[n].collections.[n].dataSources.[n].collectionRegex
์กฐ๊ฑด๋ถ: ์์ผ๋์นด๋ collection์ ๊ฒฝ์ฐ ์ ํ ์ฌํญ์ด๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ collection์ ๊ฒฐํฉํ๋ ๋ฐ ํ์ํฉ๋๋ค.
์์ผ๋์นด๋(
*
) collection์ ๋ง๋ค๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ๋ฌ collection์ ๊ฒฐํฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ๊ท์ ํจํด์ ๋๋ค.์์ผ๋์นด๋(``*``) collection ์ด๋ฆ์ ์ ๊ท์ ํจํด์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
databases.[n].collections.[n].name
์ ๊ฐ์ผ๋ก ์์ผ๋์นด๋(*
)๋ฅผ ์ง์ ํฉ๋๋ค.databases.[n].collections.[n].dataSources.[n].collection
์(๋ฅผ) ์๋ตํฉ๋๋ค.
์์ผ๋์นด๋ collection์ ์์ฑํ๊ธฐ ์ํด ์ด ํ๋๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ, ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ธ์คํด์ค์๋ ์ง์ ๋ ์ ๊ท ํํ์๊ณผ ์ผ์นํ๋ ์ด๋ฆ์ ๊ฐ์ง collection๋ง ํฌํจ๋ฉ๋๋ค. ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์ ์ ์ฅ์ ๊ตฌ์ฑ์ collection์ Atlas cluster์ ์๋ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ๋ฌ collection์ ๊ฒฐํฉํ๊ธฐ ์ํด ์ ๊ท์ ํจํด์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
์์ผ๋์นด๋(
*
)๊ฐ ์๋ ์ด๋ฆ์databases.[n].collections.[n].name
๊ฐ์ผ๋ก ์ง์ ํฉ๋๋ค.databases.[n].collections.[n].dataSources.[n].collection
์(๋ฅผ) ์๋ตํฉ๋๋ค.
์ฌ๋ฌ ์ปฌ๋ ์ ์ ๊ฒฐํฉํ๊ธฐ ์ํด ์ด ํ๋๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ, ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ธ์คํด์ค์ ์ปฌ๋ ์ ์๋ ์ง์ ๋ ์ ๊ท ํํ์๊ณผ ์ด๋ฆ์ด ์ผ์นํ๋ ๋ชจ๋ Atlas ์ปฌ๋ ์ ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์ ๊ตฌ์ฑ์ ์ปฌ๋ ์ ์
databases.[n].collections.[n].name
์ ๊ฐ์ผ๋ก ์ง์ ํ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.์ ๊ท์ ๊ตฌ๋ฌธ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฐธ์กฐํ์ธ์.
databases.[n].collections.[n].dataSources.[n].provenanceFieldName
๊ฒฐ๊ณผ์ ์๋ ๋ฌธ์์ ์ถ์ฒ๋ฅผ ํฌํจํ๋ ํ๋์ ์ด๋ฆ์ ๋๋ค. ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์์ ์ด ์ค์ ์ ์ง์ ํ๋ฉด Atlas Data Federation์ ๊ฒฐ๊ณผ์ ๊ฐ ๋ฌธ์์ ๋ํด ๋ค์ ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
ํ๋ ์ด๋ฆ์ค๋ชprovider
์ฐํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ์ ์ฅ์ ๊ตฌ์ฑ์ ์ ๊ณต์(stores.[n].provider
)clusterName
Atlas ํด๋ฌ์คํฐ์ ์ด๋ฆ(stores.[n].clusterName
)databaseName
Atlas cluster์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ(databases.[n].collections.[n].dataSources.[n].database
)collectionName
์ปฌ๋ ์ ์ ์ด๋ฆ(databases.[n].collections.[n].name
)Atlas UI์ ๋น์ฃผ์ผ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ค์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
databases.[n].views
๊ฐ ๊ฐ์ฒด๊ฐ ์ปฌ๋ ์ ์ ์ง๊ณ ํ์ดํ๋ผ์ธ์ ๋ํ๋ด๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๋๋ค. ๋ณด๊ธฐ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
databases.[n].views.[n].source
๋ทฐ์ ๋ํ ์์ค ์ปฌ๋ ์ ์ ์ด๋ฆ์ ๋๋ค.
$sql
๋จ๊ณ๋ก ๋ทฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด SQL ๋ฌธ์ด ์์ค ์ปฌ๋ ์ ์ ์ง์ ํ๋ฏ๋ก ์ด ํ๋๋ฅผ ์๋ตํด์ผ ํฉ๋๋ค.
databases.[n].views.[n].pipeline
์ปฌ๋ ์ ์ ์ ์ฉํ ์ง๊ณ
source
ํ์ดํ๋ผ์ธ ๋จ๊ณ$sql
์ ๋๋ค. ๋จ๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ๋ทฐ๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค.