Is your feature request related to a problem? Please describe.
Data exploration based on popularity, updated-date, catalog, tags using metadata
(Metadata Explore Data > Main Page)
Describe the solution you'd like
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
๊ธฐํํ๋ฉด ๊ณต์ ๋๋ฆฝ๋๋ค.
1_ ๋ฉ์ธํ๋ฉด

.
2_ ๋ฉ์ธํ๋ฉด > ์นดํ๋ก๊ทธ ๊ฒ์

.
3_ ์นดํ๋ก๊ทธ ๋ชฉ๋ก

@AnnieHwang
๋ฉ์ธํ๋ฉด์์ ์ง๋ฌธ์ด ์์ต๋๋ค.
ํ๊ทธ๋ ์ค๋ช
์ด ์๋๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํํ์ด ๋๋๋ฐ ๊ด์ฐฎ์๊ฐ์?

@ufoscw ํด๋น ํ๋ฉด๋ณ api ๋ฌธ์์
๋๋ค.
Q1.

์ด๊ธฐ explore data ํ๋ฉด ์ง์
์ title ํ๋จ์ database, stagingDB, datasource ๋ฉํ๋ฐ์ดํฐ ์๋ ์ด๋ค api๋ก ์กฐํํ ์ ์๋์?
Q2. ๋ฉํ๋ฐ์ดํฐ ์กฐํ์ ์๋์ api๋ฅผ ์ฌ์ฉํด์ ์๋์ ํ๋ฉด์ ํ์ํ๊ณ ์์ต๋๋ค.
api/metadatas?page=0&size=20&projection=forListView

์ด ํ๋ฉด์์๋ ์ธ๊ธฐ๋์์ผ๋ก ๋ณด์ฌ์ค์ผ ๋ ๊ฒ ๊ฐ์๋ฐ ์ api๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํด์ผ ๋๋ค๋ฉด ์ด๋ค ๊ฐ์ querystring์ผ๋ก ๋๊ฒจ์ผ ๋๋์?
@AnnieHwang ๊ทธ๋ฆฌ๊ณ popular data ๋์์ ์ผ๋งํผ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค์ผ๋๋์?
Q3. ์๋์ ํด๋นํ๋ ํ๋ฉด๋ค์ ๋ํด api๋ ์ด๋ค ๊ฒ์ ์ฌ์ฉํด์ผ๋๋์?



Q4. ์๋ํด๋นํ๋ ์นดํ๋ก๊ทธ ๋ชฉ๋ก์ ์๋์ api๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋์?

api/catalogs/ROOT/tree
api/catalogs/{catalogId}/tree
@brandon-wonjune
Q1.
์๋ API ์ถ๊ฐ๋์์ต๋๋ค.
(GET) /api/metadatas/statistics/count/sourcetype
{
"ENGINE": 2,
"JDBC": 5,
"STAGEDB": 2
}
Q2, Q3
API ์์ ํ ๋ค์ ์๋ ค๋๋ฆด๊ฒ์.
Q4
๋ค. ์ API ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
@ufoscw
์นดํ๋ก๊ทธ ์์ด๋๋ฅผ ์ด์ฉํ์ฌ ๋ฉํ๋ฐ์ดํฐ ๋ชฉ๋ก ์กฐํ api๋ฌธ์๋๋ฆฝ๋๋ค.
api/catalogs/{catalogId}/metadatas?page=0&size=20&projection=default&allSubCatalogs=true
์ด api๋ฅผ ํ์ฉํ์ฌ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋ ค๊ณ ํ๋๋ฐ ์๋์ ๊ฐ์ด ํ๊ธฐํด์ผ๋ฉ๋๋ค.

์ฌ๊ธฐ์ datatype, tags, creator, popularity, createdTime์ด ์ค๊ณ ์์ง ์์ต๋๋ค
@AnnieHwang ์ฌ๊ธฐ์ ํ๋จ์ ํ์ด์ง์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ๋ ํ์ด์ง์ด ๋ค์ด๊ฐ์ผ๋๋์ ์๋๋ฉด ์๋์ ๊ฐ์ด ๋๋ณด๊ธฐ๊ฐ ๋ค์ด๊ฐ์ผ๋๋์?

@brandon-wonjune
api/catalogs/{catalogId}/metadatas?page=0&size=20&projection=default&allSubCatalogs=true
projection์ forListView ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
@ufoscw
api/catalogs/ROOT/tree
api/catalogs/{catalogId}/tree
์ด api ๋ฌธ์ ๋๋ฆฝ๋๋ค.
ํด๋น api๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ ๊ฐ์ ํ๋ฉด์ ๊ตฌํํ์์ต๋๋ค.

ํ๋ฉด ๊ตฌํํ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ์ search ๊ธฐ๋ฅ์ ์ด์ฉํ ๋๋ ์ด๋ค api์ param์ผ๋ก ๊ฒ์์ ์์ฒญํด์ผ๋๋์?
@brandon-wonjune
tree view๋ฅผ ์ํ ์นดํ๋ก๊ทธ ๊ฒ์ API sample์
๋๋ค.
(GET) api/catalogs?nameContains={textForSearch}&projection=forSimpleTreeView
response sample
[
{
"name": "depth1_bbb",
"id": "1aa1c10b-88f5-4104-8207-1c895b43d707",
"countOfChild": 3
},
{
"name": "depth2_bbb_111",
"id": "30898d6a-36b2-4720-9ae5-180d6f898728",
"countOfChild": 0
},
{
"name": "depth2_bbb_333",
"id": "364329ca-c2ac-4f7d-bbca-07accb1f3d18",
"countOfChild": 0
},
{
"name": "depth2_ccc",
"id": "57d98afc-1295-44a3-ad90-bc106142959e",
"countOfChild": 0
},
{
"name": "depth3_ccc_111_222",
"id": "857460ec-fa42-4bfa-936f-a1fd73f127fc",
"countOfChild": 0
},
{
"name": "catalog_depth1_aaaa",
"id": "93071e18-c6e6-465d-b800-f1d1535d3422",
"countOfChild": 3
},
{
"name": "depth1_ccc",
"id": "b9319954-6dce-4062-8b86-6d0df065c32a",
"countOfChild": 1
},
{
"name": "depth2_ccc_111",
"id": "b998bb3d-3c88-4e72-9323-2a3f9d57d646",
"countOfChild": 1
},
{
"name": "depth2_aaa",
"id": "c1bff0da-d0f8-44b9-ae4e-b55c9c8297e3",
"countOfChild": 0
},
{
"name": "depth2_bbb_222",
"id": "ced585a8-6dde-4660-b0ec-5253cd97f073",
"countOfChild": 0
},
{
"name": "depth2_bbb",
"id": "dbca04c5-60b2-4302-9187-eb84346f81f8",
"countOfChild": 0
}
]
@brandon-wonjune ๋ต๋ณ ๋๋ฌด ๋ฆ๊ฒ ๋ฌ์์ ์ฃ์กํด์ ใ ใ
Popular data๋ 10๊ฐ์์. ์๋๊ฐ์ ๋๋์ผ๋ก ๋ค์ด๊ฐ๋ค๊ณ ๋ณด์๋ฉด ๋์.

ํ์ด์ง์..๋ณ๊ฒฝ๋ ํ์ด์ง์ด ๋ค์ด๊ฐ์ผํด์ #2166 ํ์ด์ง ๊ธฐํ์์ผ๋ก ์ ํด์ก์ด์. ๊ธฐ์กด ํ์ด์ง์ด ๊ธฐํ์์ ๋ค๋ฅด๊ฒ ๊ฐ๋ฐ๋์ด์ ๋ค์ ๋ฐ๊พธ๊ธฐ๋ก ํ๊ฑฐ๋ ์
@brandon-wonjune ์์ ์ง๋ฌธ์ด ๋ ์์ด์.. ์ ๋๊ธ์ ์ถ๊ฐํด๋์์ต๋๋ค~
@brandon-wonjune
(GET) /api/metadatas/popularity(?size, page)
{
"_embedded": {
"metadatas": [
{
"name": "book",
"id": "51066bd2-f143-46db-b592-8457c53d181d",
"createdTime": "2019-06-27T00:18:21.000Z",
"sourceType": "JDBC",
"createdBy": {
"type": "user",
"username": "admin",
"fullName": "Administrator",
"email": "[email protected]"
},
"popularity": 0.2,
"modifiedBy": {
"type": "user",
"username": "admin",
"fullName": "Administrator",
"email": "[email protected]"
},
"modifiedTime": "2019-06-27T00:18:21.000Z",
"tags": [],
"_links": {
"self": {
"href": "http://localhost:8180/api/metadatas/51066bd2-f143-46db-b592-8457c53d181d{?projection}",
"templated": true
},
"columns": {
"href": "http://localhost:8180/api/metadatas/51066bd2-f143-46db-b592-8457c53d181d/columns"
},
"catalogs": {
"href": "http://localhost:8180/api/metadatas/51066bd2-f143-46db-b592-8457c53d181d/catalogs"
}
}
},
{
"name": "sales",
"id": "test_meta1",
"createdTime": "2019-06-26T14:54:50.000Z",
"sourceType": "ENGINE",
"createdBy": {
"type": "user",
"username": "admin",
"fullName": "Administrator",
"email": "[email protected]"
},
"popularity": 0.2,
"modifiedBy": {
"type": "user",
"username": "admin",
"fullName": "Administrator",
"email": "[email protected]"
},
"modifiedTime": "2019-06-26T14:54:50.000Z",
"description": "meta description1",
"tags": [],
"_links": {
"self": {
"href": "http://localhost:8180/api/metadatas/test_meta1{?projection}",
"templated": true
},
"columns": {
"href": "http://localhost:8180/api/metadatas/test_meta1/columns"
},
"catalogs": {
"href": "http://localhost:8180/api/metadatas/test_meta1/catalogs"
}
}
}
]
},
"_links": {
"first": {
"href": "http://localhost:8180/api/metadatas/popularity?page=0&size=3"
},
"prev": {
"href": "http://localhost:8180/api/metadatas/popularity?page=0&size=3"
},
"self": {
"href": "http://localhost:8180/api/metadatas/popularity?page=1&size=3"
},
"last": {
"href": "http://localhost:8180/api/metadatas/popularity?page=1&size=3"
}
},
"page": {
"size": 3,
"totalElements": 5,
"totalPages": 2,
"number": 1
}
}
(GET) /api/metadatas/favorite/my?(size, page, projection, sort)
(GET) /api/metadatas/favorite/creator?(size, page, projection, sort)
(GET) /api/metadatas/recommended?(size, page, projection, sort)
ํ์ฌ๋ metadata list์ ๋์ผํ ๋ฐ์ดํฐ๋ก ๋ด๋ ค๊ฐ๋๋ค.
front์์๋ ์ API๋ก ์ฐ๊ฒฐ๋ง ํด์ฃผ์ธ์.
@brandon-wonjune
LNB ๋
ธ์ถ ์ฌ๋ถ์ ๋ํ ๋ก์ง ๊ตฌํ์ด ํ์ํฉ๋๋ค.
lnb api ํธ์ถ ์ ์๋์ ๊ฐ์ response๊ฐ ๋ด๋ ค๊ฐ ์์ ์
๋๋ค.
์ด ๊ฒฝ์ฐ์๋ง LNB์ ๋ฉ๋ด๋ฅผ ํ์ํด์ฃผ์ธ์.
[
{
"name":"Explore Data",
"parent":"workspace"
}
]
@AnnieHwang
Q1. recommended ๋ฐ์ดํฐ๊ฐ 4๊ฐ๋ง ์ค๋๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ๋น ๊ณต๊ฐ์ด ์๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.

๋น ๊ณต๊ฐ์ด ์๊ฒจ๋ ์๊ด์๋์?
1๊ฐ๋ง ์ค๋๊ฒฝ์ฐ๋ ๋ชฉ๋ก ์์ฒด๊ฐ ์ฌ๋ผ์ง๊ณ ํ๋์ ๋ฐ์ดํฐ๋ง ํ๊ธฐ๋๊ธฐ ๋๋ฌธ์ ๋น๊ณต๊ฐ์ด ์๊ธฐ์ง ์์ต๋๋ค.
Q2. banner์ ๋ท ๋ฐฐ๊ฒฝ์ ๊ทธ๋ฆผ์ ๋๋คํ๊ฒ ํ์๋๋ฉด ๋๋๊ฑด๊ฐ์?
Q3. ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ด๋ จ๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋ช๊ฐ๊น์ง ํ์ํด์ผ๋๋์?

Q4. my favorite์ favorite creator๋ ํ๊ธ๋ก ๋ญ๋ผ๊ณ ํ์ํ๋ฉด ๋๋์?
@ufoscw
์
๋ฐ์ดํธ๋ ๋ฉํ๋ฐ์ดํฐ ๋ชฉ๋ก์ api๋ ์ด๋๊ฒ์ ์จ์ผ๋๋์?

/api/metadatas?page=0&size=20
์ด api๋ฅผ ์จ์ผ๋๋ค๋ฉด explore data๋ง ํ์ํ๋ param key๋ ์ด๋๊ฒ์ผ๋ก ๋ ๋ ค์ผ๋๋์?
@brandon-wonjune
explore data ์ฌ๋ถ๋ ์ถํ ๊ถํ ์ฒ๋ฆฌํ ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์์ ์
๋๋ค.
ํ์ฌ๋ ๊ทธ๋ฅ modifiedTime ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
(GET) /api/metadatas?projection=forListView&sort=modifiedTime%2Cdesc
@brandon-wonjune @ufoscw
banner์ ๋ท ๋ฐฐ๊ฒฝ์ ๊ทธ๋ฆผ์ ๋๋คํ๊ฒ ํ์๋๋ฉด ๋๋๊ฑด๊ฐ์?
=> ๋์ค์ Admin๊ธฐ๋ฅ์ ๋ท ๋ฐฐ๊ฒฝ์ ๋ฐ๊พธ๋ ๊ธฐ๋ฅ์ด ๊ธฐํ๋์ด ์์ต๋๋ค. ์ง๊ธ์ ๊ณ ์ ์ ์ผ๋ก ๊ฐ์
๋ ๋ฉ๋๋ค.
์ฆ๊ฒจ์ฐพ๊ธฐ ๊ด๋ จ๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋ช๊ฐ๊น์ง ํ์ํด์ผ๋๋์?
=> ๋์์ธ ์์ผ๋ก๋ 3๊ฐ ์์. ๋๋จธ์ง๋ more ๋ฒํผ์ผ๋ก ๋ณด๋๊ฑฐ๊ณ ์. (์์ ๊ฐ๋ฐ๋๊ฑฐ ๋ณด๋๊น ํผ๋ธ์ด ์๋ชป๋๊ฑฐ ๊ฐ์์. ํผ๋ธ๋ฆฌ์
๋ถ๊ป ๋์์ธ๋๋ก ๋ง์ง ๋ง์ถฐ์ 3๊ฐ๊ฐ ๊ท ํ์๊ฒ ๋ค์ด๊ฐ๊ฒ ํด๋ฌ๋ผ๊ณ ํด์ฃผ์ธ์~)

my favorite์ favorite creator๋ ํ๊ธ๋ก ๋ญ๋ผ๊ณ ํ์ํ๋ฉด ๋๋์?
=> '์ฆ๊ฒจ์ฐพ๊ธฐ'
=> favorite creator๊ฐ ์๋๋ผ data creator ๋ง์์ด์ ๊ฑฐ ๋ง์ฃ ? '๋ฐ์ดํฐ ๋ฑ๋ก์' ๋ก ํด์ฃผ์ธ์~
@AnnieHwang
์ ๋๊ธ๋จ๊ฒจ์ฃผ์ ๋๋ก ์ ์ฉํ๊ณ , ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ด๋ จ 4๊ฐ ์ด์ ์ค๋๊ฒฝ์ฐ๋ฅผ ์ํ more๋ ๋ฐ๋ก ํ์ ์ฐฝ์ด๋ ํ๋ฉด์ ๋ํ ๋์์ธ ๋๋ ๊ธฐํ์ด ์๋๋ฐ ์ผ๋จ ๋ฒํผ์ ์จ๊ธฐ๋๊ฒ์ผ๋ก ์ ์ฉํ๊ฒ ์ต๋๋ค.
@brandon-wonjune
์๋ ๋ด์ฉ๊น์ง PR์ ์ ์ฉ๋์ด์ผ ํฉ๋๋ค.
@brandon-wonjune
LNB ๋ ธ์ถ ์ฌ๋ถ์ ๋ํ ๋ก์ง ๊ตฌํ์ด ํ์ํฉ๋๋ค.
lnb api ํธ์ถ ์ ์๋์ ๊ฐ์ response๊ฐ ๋ด๋ ค๊ฐ ์์ ์ ๋๋ค.
์ด ๊ฒฝ์ฐ์๋ง LNB์ ๋ฉ๋ด๋ฅผ ํ์ํด์ฃผ์ธ์.```
[
{
"name":"Explore Data",
"parent":"workspace"
}
@ufoscw explore ๊ด๋ จ์ด ์๋๊ฒฝ์ฐ์๋ง ํ์๋๋๋ก ์์ ํ์์ต๋๋ค.