Cloud Storage ๋ฐ์ดํฐ ํ์ ๋ฐ ๋ถ๋ฅ
์ด ๋ฌธ์์์๋ Cloud Storage ๋ฒํท์ ๋ฐ์ดํฐ๋ฅผ ์ค์บํ์ฌ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ๋ถ๋ฅํ ์ ์๋ BigQuery์ ๊ธฐ๋ฅ์ธ Dataplex ๋ฒ์ฉ ์นดํ๋ก๊ทธ ์๋ ํ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ํ์ ์ค์บ์ ์ผํ์ผ๋ก ์๋ ํ์์ ์ ํ ๋ฐ์ดํฐ์ ๋ํ BigLake ๋๋ ์ธ๋ถ ํ ์ด๋ธ๊ณผ ๋น์ ํ ๋ฐ์ดํฐ์ ๋ํ ๊ฐ์ฒด ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค. ์ด ์ค์ ์ง์ค์ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด AI ๊ธฐ๋ฐ ๋ฐ์ดํฐ ํต๊ณ, ๋ฐ์ดํฐ ๋ณด์, ๊ฑฐ๋ฒ๋์ค๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Cloud Storage ๋ฐ์ดํฐ์ ์๋ ํ์์ ์ฌ์ฉํ๋ ค๋ฉด ํ์ ์ค์บ์ ๋ง๋ค๊ณ ์คํํฉ๋๋ค.
์๋ ๊ฒ์์ ๋ ๋ฆฝํ ๊ฒ์์ด๋ผ๊ณ ๋ ํฉ๋๋ค.
ํ์ ์ค์บ ๊ฐ์
ํ์ ์ค์บ์์๋ ๋ค์์ ์ํํฉ๋๋ค.
- Cloud Storage ๋ฒํท ๋๋ ๊ฒฝ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ค์บํฉ๋๋ค.
- ์ ํ ๋ฐ์ดํฐ์ ๋ฐ์ ํ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ๋ก ๊ทธ๋ฃนํํฉ๋๋ค.
- ํ ์ด๋ธ ์ด๋ฆ, ์คํค๋ง, ํํฐ์ ์ ์์ ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์งํฉ๋๋ค.
- ์คํค๋ง ๋ฐ ํํฐ์ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ BigQuery์์ BigLake, ์ธ๋ถ ํ ์ด๋ธ, ๊ฐ์ฒด ํ ์ด๋ธ์ ๋ง๋ค๊ณ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ด๋ฏธ์ง ๋ฐ ๋์์๊ณผ ๊ฐ์ ๋น์ ํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ํ์ ์ค์บ์์ BigLake ๊ฐ์ฒด ํ
์ด๋ธ๊ณผ ๋์ผํ ๋ฏธ๋์ด ์ ํ์ ๊ณต์ ํ๋ ํ์ผ ๊ทธ๋ฃน์ ๊ฐ์งํ๊ณ ๋ฑ๋กํฉ๋๋ค. ์๋ฅผ ๋ค์ด gs://images/group1
์ GIF ์ด๋ฏธ์ง๊ฐ ํฌํจ๋์ด ์๊ณ gs://images/group2
์ JPEG ์ด๋ฏธ์ง๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ํ์ ์ค์บ์์ ๋ ๊ฐ์ ํ์ผ ์ธํธ๋ฅผ ๊ฐ์งํ๊ณ ๋ฑ๋กํฉ๋๋ค.
Avro์ ๊ฐ์ ์ ํ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ํ์ ์ค์บ์์ ํ์ผ ๊ทธ๋ฃน์ BigLake ์ธ๋ถ ํ ์ด๋ธ๋ก ๋ฑ๋กํ๊ณ ๋์ผํ ๋ฐ์ดํฐ ํ์ ๋ฐ ํธํ๋๋ ์คํค๋ง๊ฐ ํฌํจ๋ ํด๋์ ์๋ ๊ฒฝ์ฐ์๋ง ํ์ผ์ ๊ฐ์งํฉ๋๋ค.
ํ์ ์ค์บ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ ํ ๋ฐ์ดํฐ ํ์๊ณผ ๋ฐ์ ํ ๋ฐ์ดํฐ ํ์์ ์ง์ํฉ๋๋ค.
- Parquet
- Avro
- ORC
- JSON(์ค๋ฐ๊ฟ์ผ๋ก ๊ตฌ๋ถ๋ ํ์๋ง)
- CSV(์ฃผ์ ํ์ด ์๋ CSV ํ์ผ์ ์ ์ธ)
ํ์ ์ค์บ์์๋ ์ ํ ๋ฐ์ดํฐ์ ๋ฐ์ ํ ๋ฐ์ดํฐ์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ์์ถ ํ์์ ์ง์ํฉ๋๋ค.
๋ค์ ํ์์ ๋ด๋ถ ์์ถ:
์์ถ ํ์ผ ํ์ฅ์ ์ํ ์ง์๋๋ ํ์ gzip .gz.parquet
Parquet lz4 .lz4.parquet
Parquet Snappy .snappy.parquet
Parquet, ORC, Avro LZO .lzo.parquet
Parquet, ORC JSON ๋ฐ CSV ํ์ผ์ ์ธ๋ถ ์์ถ:
- gzip
- bzip2
ํ์ ์ค์บ์์ ์ง์ํ๋ ํ ์ด๋ธ ์ ์ ํ์ ํ์ธํ๋ ค๋ฉด ํ ๋น๋ ๋ฐ ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
ํ์๋ ํ ์ด๋ธ์ BigQuery์ BigLake ์ธ๋ถ ํ ์ด๋ธ, BigLake ๊ฐ์ฒด ํ ์ด๋ธ ๋๋ ์ธ๋ถ ํ ์ด๋ธ๋ก ๋ฑ๋ก๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด BigQuery์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ์ ์์ต๋๋ค. BigLake ํ ์ด๋ธ ๋ฐ ๊ฐ์ฒด ํ ์ด๋ธ์ ๋ฉํ๋ฐ์ดํฐ ์บ์ฑ๋ ์ฌ์ฉ ์ค์ ๋ฉ๋๋ค. ๋ชจ๋ BigLake ํ ์ด๋ธ์ ๊ฒ์ ๋ฐ ํ์์ ์ํด Dataplex ๋ฒ์ฉ ์นดํ๋ก๊ทธ์ ์๋์ผ๋ก ์์ง๋ฉ๋๋ค.
์์ํ๊ธฐ ์ ์
Enable the Dataplex API.
Dataplex Universal Catalog ์๋น์ค ๊ณ์ ์ ํ์ํ ์ญํ
์์ํ๊ธฐ ์ ์ ํ๋ก์ ํธ์ Dataplex Universal Catalog ์๋น์ค ๊ณ์ ์ IAM ๊ถํ์ ํ ๋นํฉ๋๋ค.
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
PROJECT_NUMBER
๋ฅผ Dataplex API๊ฐ ์ฌ์ฉ ์ค์ ๋ ํ๋ก์ ํธ๋ก ๋ฐ๊ฟ๋๋ค.
Dataplex ์๋น์ค ๊ณ์ ์ ํ์ ์ค์บ์ ๋ง๋ค๊ณ ์คํํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์๋์ง ํ์ธํ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ Dataplex ์๋น์ค ๊ณ์ ์ ๋ค์ IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
-
์คํ ๋ฆฌ์ง ๋ฒํท์ Dataplex ํ์ ์๋น์ค ์์ด์ ํธ(
roles/dataplex.discoveryServiceAgent
) -
์ฌ์ฉ์ ํ๋ก์ ํธ์ ๋ํ Dataplex ํ์ ๊ฒ์ ์๋น์ค ์์ด์ ํธ(
roles/dataplex.discoveryPublishingServiceAgent
) -
BigLake ํ
์ด๋ธ ๋ง๋ค๊ธฐ:
BigQuery ์ฐ๊ฒฐ์ Dataplex ํ์ BigLake ๊ฒ์ ์๋น์ค ์์ด์ ํธ(
roles/dataplex.discoveryBigLakePublishingServiceAgent
)
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด๋ฌํ ์ฌ์ ์ ์๋ ์ญํ ์๋ ํ์ ์ค์บ์ ๋ง๋ค๊ณ ์คํํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ํ์ํ ์ ํํ ๊ถํ์ ๋ณด๋ ค๋ฉด ํ์ ๊ถํ ์น์ ์ ํผ์น์ธ์.
ํ์ ๊ถํ
ํ์ ์ค์บ์ ๋ง๋ค๊ณ ์คํํ๋ ค๋ฉด ๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค.
-
๋ฐ์ดํฐ ์์ค ํ๋ก์ ํธ์ ๋ํ
bigquery.datasets.create
-
๋ฐ์ดํฐ ์์ค ๋ฒํท์ ๋ํ
storage.buckets.get
-
๋ฐ์ดํฐ ์์ค ๋ฒํท์ ๋ํ
storage.objects.get
-
๋ฐ์ดํฐ ์์ค ๋ฒํท์ ๋ํ
storage.objects.list
-
๋ฐ์ดํฐ ์์ค ํ๋ก์ ํธ์ ๋ํ
bigquery.datasets.get
-
์ฐ๊ฒฐ ์ ๊ณต:
-
BigQuery ์ฐ๊ฒฐ์ ๋ํ
bigquery.connections.delegate
-
BigQuery ์ฐ๊ฒฐ์ ๋ํ
bigquery.connections.use
-
BigQuery ์ฐ๊ฒฐ์ ๋ํ
๊ด๋ฆฌ์๋ ์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํ์ฌ Dataplex ์๋น์ค ๊ณ์ ์ ์ด๋ฌํ ๊ถํ์ ๋ถ์ฌํ ์๋ ์์ต๋๋ค.
BigQuery ์ฐ๊ฒฐ ์๋น์ค ๊ณ์ ์ ํ์ํ ์ญํ
BigQuery ์ฐ๊ฒฐ ์๋น์ค ๊ณ์ ์ ํ์ ์ค์บ์ ๋ง๋๋ ๋ฐ ํ์ํ ๊ถํ์ด ์๋์ง ํ์ธํ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ BigQuery ์ฐ๊ฒฐ ์๋น์ค ๊ณ์ ์ Cloud Storage ๋ฒํท์ ๋ํ Dataplex ํ์ ์๋น์ค ์์ด์ ํธ(roles/dataplex.discoveryServiceAgent
) IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
์ด ์ฌ์ ์ ์๋ ์ญํ ์๋ ํ์ ์ค์บ์ ๋ง๋๋ ๋ฐ ํ์ํ ๊ถํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ํ์ํ ์ ํํ ๊ถํ์ ๋ณด๋ ค๋ฉด ํ์ ๊ถํ ์น์ ์ ํผ์น์ธ์.
ํ์ ๊ถํ
ํ์ ์ค์บ์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค.
-
๋ฐ์ดํฐ ์์ค ํ๋ก์ ํธ์ ๋ํ
bigquery.datasets.create
-
๋ฐ์ดํฐ ์์ค ๋ฒํท์ ๋ํ
storage.buckets.get
-
๋ฐ์ดํฐ ์์ค ๋ฒํท์ ๋ํ
storage.objects.get
-
๋ฐ์ดํฐ ์์ค ๋ฒํท์ ๋ํ
storage.objects.list
-
๋ฐ์ดํฐ ์์ค ํ๋ก์ ํธ์ ๋ํ
bigquery.datasets.get
-
์ฐ๊ฒฐ ์ ๊ณต:
-
BigQuery ์ฐ๊ฒฐ์ ๋ํ
bigquery.connections.delegate
-
BigQuery ์ฐ๊ฒฐ์ ๋ํ
bigquery.connections.use
-
BigQuery ์ฐ๊ฒฐ์ ๋ํ
๊ด๋ฆฌ์๋ ์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํ์ฌ BigQuery ์ฐ๊ฒฐ ์๋น์ค ๊ณ์ ์ ์ด๋ฌํ ๊ถํ์ ๋ถ์ฌํ ์๋ ์์ต๋๋ค.
์ต์ข ์ฌ์ฉ์์๊ฒ ํ์ํ ์ญํ
๋ฐ์ดํฐ ํ์ ๊ฒ์์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ Cloud Storage ๋ฒํท์ ๋ํ ๋ค์ IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
- DataScan ๋ฆฌ์์ค์ ๋ํ ์ ์ฒด ์ก์ธ์ค ๊ถํ: ํ๋ก์ ํธ์ ๋ํ Dataplex DataScan ๊ด๋ฆฌ์(
roles/dataplex.dataScanAdmin
) ์ญํ - DataScan ๋ฆฌ์์ค์ ๋ํ ์ฐ๊ธฐ ์ก์ธ์ค ๊ถํ: ํ๋ก์ ํธ์ ๋ํ Dataplex DataScan ํธ์ง์(
roles/dataplex.dataScanEditor
) ์ญํ - ๊ฒฐ๊ณผ๋ฅผ ์ ์ธํ DataScan ๋ฆฌ์์ค์ ๋ํ ์ฝ๊ธฐ ์ก์ธ์ค ๊ถํ: ํ๋ก์ ํธ์ ๋ํ Dataplex DataScan ๋ทฐ์ด(
roles/dataplex.dataScanViewer
) ์ญํ - ๊ฒฐ๊ณผ๋ฅผ ํฌํจํ DataScan ๋ฆฌ์์ค์ ๋ํ ์ฝ๊ธฐ ์ก์ธ์ค ๊ถํ: ํ๋ก์ ํธ์ ๋ํ Dataplex DataScan DataViewer(
roles/dataplex.dataScanDataViewer
) ์ญํ
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด๋ฌํ ์ฌ์ ์ ์๋ ์ญํ ์๋ ๋ฐ์ดํฐ ํ์ ์ค์บ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ํ์ํ ์ ํํ ๊ถํ์ ๋ณด๋ ค๋ฉด ํ์ ๊ถํ ์น์ ์ ํผ์น์ธ์.
ํ์ ๊ถํ
๋ฐ์ดํฐ ํ์ ์ค์บ์ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ค๋ฉด ๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค.
-
DataScan ๋ง๋ค๊ธฐ: ํ๋ก์ ํธ์ ๋ํ
dataplex.datascans.create
-
DataScan ์ญ์ : ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.delete
-
๊ฒฐ๊ณผ๋ฅผ ์ ์ธํ DataScan ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ: ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.get
-
๊ฒฐ๊ณผ๋ฅผ ํฌํจํ DataScan ์ธ๋ถ์ ๋ณด ๋ณด๊ธฐ: ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.getData
-
DataScans ๋์ด: ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.list
-
DataScan ์คํ: ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.run
-
DataScan ์ค๋ช
์
๋ฐ์ดํธ: ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.update
-
DataScan์ IAM ๊ถํ ๋ณด๊ธฐ: ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.getIamPolicy
-
DataScan์์ IAM ๊ถํ ์ค์ : ํ๋ก์ ํธ ๋๋ DataScan ๋ฆฌ์์ค์ ๋ํ
dataplex.datascans.setIamPolicy
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํ์ฌ ์ด ๊ถํ์ ๋ถ์ฌ๋ฐ์ ์๋ ์์ต๋๋ค.
ํ์ ์ค์บ ๋ง๋ค๊ธฐ
๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ค๋ฉด ํ์ ์ค์บ์ ๋ง๋ค๊ณ ์คํํด์ผ ํฉ๋๋ค. ์ค์บ ์ผ์ ์ ์ค์ ํ๊ฑฐ๋ ์์ฒญ ์ ์ค์บ์ ์คํํ ์ ์์ต๋๋ค.
ํ์ ์ค์บ์ด ์คํ๋๋ฉด ์ค์บ๋ Cloud Storage ๋ฒํท์ ํด๋นํ๋ ์ ๋ฐ์ดํฐ ์ธํธ๊ฐ BigQuery์ ์์ฑ๋ฉ๋๋ค. BigQuery ๋ฐ์ดํฐ ์ธํธ ์ด๋ฆ์ Cloud Storage ๋ฒํท ์ด๋ฆ๊ณผ ๋์ผํฉ๋๋ค. ๋ฒํท ์ด๋ฆ์ ์๋ชป๋ ๋ฌธ์๊ฐ ์์ผ๋ฉด ๋ฐ์ค๋ก ๋์ฒด๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ํฝ์ค๊ฐ ์ถ๊ฐ๋ฉ๋๋ค(์: _discovered_001
). ๋ฐ์ดํฐ ์ธํธ์๋ ์ถ๊ฐ ๋ถ์์ ์ํด ํ์ ์ค์บ์ ํตํด ์์ฑ๋ BigLake ์ธ๋ถ ํ
์ด๋ธ ๋๋ BigLake ์ด์ธ์ ์ธ๋ถ ํ
์ด๋ธ์ด ํฌํจ๋ฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ๋ฉํ๋ฐ์ดํฐ ์ ๋ณ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
Cloud Storage ํ์ ํญ์์ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ฒ์ ์ค์บ ๋ง๋ค๊ธฐ ์ฐฝ์์ ์ค์บํ ๋ฐ์ดํฐ์ ๋ํ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ค์บ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
์ค์บ ID ํ๋์ Google Cloud์ ๋ฆฌ์์ค ์ด๋ฆ ์ง์ ๊ท์น์ ๋ฐ๋ผ ๊ณ ์ ID๋ฅผ ์ ๋ ฅํฉ๋๋ค. ID๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ํ์ ์ค์บ์์ ์ค์บ ID๋ฅผ ์์ฑํฉ๋๋ค.
์ ํ์ฌํญ: ์ค์บ์ ๋ํ ์ค๋ช ์ ์ ๊ณตํฉ๋๋ค.
์ค์บํ ํ์ผ์ด ํฌํจ๋ Cloud Storage ๋ฒํท์ ์ง์ ํ๋ ค๋ฉด ๋ฒํท ํ๋์์ ๋ฒํท์ ์ฐพ์ ์ ํํฉ๋๋ค.
์ ํ์ฌํญ: ํ์ผ ํํฐ๋ง์ ์ํ glob ํจํด ๋ชฉ๋ก์ ์ ๊ณตํ์ฌ ํ์ ์ค์บ์ ํฌํจํ๊ฑฐ๋ ์ ์ธํ ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค.
- ํฌํจ: ๋ฐ์ดํฐ์ ํ์ ์งํฉ๋ง ์ค์บํด์ผ ํ๋ ๊ฒฝ์ฐ ํฌํจํ ๊ฐ์ฒด์ ์ผ์นํ๋ glob ํจํด ๋ชฉ๋ก์ ์ ๊ณตํฉ๋๋ค.
- ์ ์ธ: ์ ์ธํ ๊ฐ์ฒด์ ์ผ์นํ๋ glob ํจํด ๋ชฉ๋ก์ ์ ๊ณตํฉ๋๋ค.
์๋ฅผ ๋ค์ด ํ์ ์ค์บ์์
gs://test_bucket/foo/..
๋ฅผ ์ ์ธํ๋ ค๋ฉด**/foo/**
๋ฅผ ์ ์ธ ๊ฒฝ๋ก๋ก ์ ๋ ฅํฉ๋๋ค. ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฏ๋ก"**/foo/**"
๋์**/foo/**
๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค.ํฌํจ ํจํด๊ณผ ์ ์ธ ํจํด์ ๋ชจ๋ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ์ ์ธ ํจํด์ด ๋จผ์ ์ ์ฉ๋ฉ๋๋ค.
์ ํ์ฌํญ: ํ๋ก์ ํธ์์ ํ์ ์ค์บ์ผ๋ก ์์ฑ๋ BigLake ์ธ๋ถ ๋๋ BigLake ์ธ์ ์ธ๋ถ ํ ์ด๋ธ์ด ํฌํจ๋ BigQuery ๋ฐ์ดํฐ ์ธํธ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด ๋ฐ์ดํฐ ์ธํธ๊ฐ Cloud Storage ๋ฒํท์ ํฌํจํ๋ ํ๋ก์ ํธ์ ์์ฑ๋ฉ๋๋ค.
์์น ์ ํ์์ BigQuery ๊ฒ์ ๋ฐ์ดํฐ ์ธํธ๊ฐ ์์ฑ๋๋ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ (์ฌ์ฉ ๊ฐ๋ฅํ ํญ๋ชฉ)์ ์ ํํฉ๋๋ค.
์ค์บํ ๋ฐ์ดํฐ์์ BigLake ํ ์ด๋ธ์ ๋ง๋ค๋ ค๋ฉด ์ฐ๊ฒฐ ID ํ๋์ Google Cloud ๋ฆฌ์์ค ์ฐ๊ฒฐ ID๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ BigQuery์Google Cloud ๋ฆฌ์์ค ์ฐ๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
Cloud Storage ๋ฒํท ์์น์ ํธํ๋๋ BigQuery ๋ฐ์ดํฐ ์ธํธ ์์น์ ๋์ผํ ์์น์ ์ ์ฐ๊ฒฐ ID๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฆฌ์์ค ์ฐ๊ฒฐ ID๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ํ์ ์ค์บ์์ BigLake ์ด์ธ์ ์ธ๋ถ ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค.
ํ์ ๋น๋ ์น์ ์์ ํ์ ์ค์บ์ ์คํํ ์๊ธฐ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๋ฐ๋ณต: ์ฌ์ ์ ์๋ ์ผ์ ์ ๋ฐ๋ผ ์ค์บ์ด ์คํ๋ฉ๋๋ค. ์์ ์๊ฐ, ์ค์บ ์คํ ์ผ์, ๋น๋(์: ์๊ฐ๋น)๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์์ฒญ ์: ์์ฒญ ์ ์ค์บ์ด ์คํ๋ฉ๋๋ค.
์ ํ์ฌํญ: JSON ๋๋ CSV ์ฌ์ ์น์ ์์ ์ค์บ์ ํตํด JSON ๋ฐ CSV ํ์ผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค. JSON ๋๋ CSV ์ฌ์์ ํด๋ฆญํฉ๋๋ค.
- JSON ์ต์
์ ๊ตฌ์ฑํ๋ ค๋ฉด JSON ํ์ฑ ์ต์
์ฌ์ฉ ์ค์ ์ ์ ํํฉ๋๋ค.
- ์ ํ ์ถ๋ก ์ฌ์ฉ ์ค์ง: ๋ฐ์ดํฐ๋ฅผ ์ค์บํ ๋ ํ์ ์ค์บ์์ ๋ฐ์ดํฐ ์ ํ์ ์ถ๋ก ํด์ผ ํ๋์ง ์ฌ๋ถ์ ๋๋ค. JSON ๋ฐ์ดํฐ์ ์ ํ ์ถ๋ก ์ ์ฌ์ฉ ์ค์งํ๋ฉด ๋ชจ๋ ์ด์ด ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์ ํ์ผ๋ก ๋ฑ๋ก๋ฉ๋๋ค.
- ์ธ์ฝ๋ฉ ํ์: UTF-8, US-ASCII, ISO-8859-1๊ณผ ๊ฐ์ ๋ฐ์ดํฐ์ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๋๋ค. ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด UTF-8์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- CSV ์ต์
์ ๊ตฌ์ฑํ๋ ค๋ฉด CSV ํ์ฑ ์ต์
์ฌ์ฉ ์ค์ ์ ์ ํํฉ๋๋ค.
- ์ ํ ์ถ๋ก ์ฌ์ฉ ์ค์ง: ๋ฐ์ดํฐ๋ฅผ ์ค์บํ ๋ ํ์ ์ค์บ์์ ๋ฐ์ดํฐ ์ ํ์ ์ถ๋ก ํด์ผ ํ๋์ง ์ฌ๋ถ์ ๋๋ค. CSV ๋ฐ์ดํฐ์ ์ ํ ์ถ๋ก ์ ์ฌ์ฉ ์ค์งํ๋ฉด ๋ชจ๋ ์ด์ด ๋ฌธ์์ด๋ก ๋ฑ๋ก๋ฉ๋๋ค.
- ํค๋ ํ: ํค๋ ํ ์์
๋๋ค(
0
๋๋1
). ๊ฐ0
์ ์ง์ ํ๋ฉด ํ์ ์ค์บ์์ ์ ๋ชฉ์ ์ถ๋ก ํ๊ณ ํ์ผ์์ ์ด ์ด๋ฆ์ ์ถ์ถํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์0
์ ๋๋ค. - ์ด ๊ตฌ๋ถ ๊ธฐํธ ๋ฌธ์: ๊ฐ์ ๊ตฌ๋ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฌธ์์
๋๋ค. ๋จ์ผ ๋ฌธ์
\r
(์บ๋ฆฌ์ง ๋ฆฌํด) ๋๋\n
(์ค๋ฐ๊ฟ)์ ์ ๋ ฅํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ์ผํ(,
)์ ๋๋ค. - ์ธ์ฝ๋ฉ ํ์: ๋ฐ์ดํฐ์ ๋ฌธ์ ์ธ์ฝ๋ฉ์
๋๋ค(์:
UTF-8
,US-ASCII
,ISO-8859-1
). ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด UTF-8์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- JSON ์ต์
์ ๊ตฌ์ฑํ๋ ค๋ฉด JSON ํ์ฑ ์ต์
์ฌ์ฉ ์ค์ ์ ์ ํํฉ๋๋ค.
์์ฝ๋ ์ค์บ์ ๊ฒฝ์ฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ๊ณ ์ฃผ๋ฌธํ ์ค์บ์ ๊ฒฝ์ฐ ์ง๊ธ ์คํ์ ํด๋ฆญํฉ๋๋ค.
์์ฝ๋ ์ค์บ์ ์ค์ ๋ ์ผ์ ์ ๋ฐ๋ผ ์คํ๋ฉ๋๋ค.
์ฃผ๋ฌธํ ์ค์บ์ ์ฒ์ ๋ง๋ค ๋ ํ ๋ฒ ์คํ๋๋ฉฐ ์ธ์ ๋ ์ง ์คํํ ์ ์์ต๋๋ค. ํ์ ์ค์บ์ด ์คํ๋๋ ๋ฐ ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
gcloud
ํ์ ์ค์บ์ ๋ง๋ค๋ ค๋ฉด gcloud dataplex datascans create data-discovery
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud dataplex datascans create data-discovery --location=LOCATION --data-source-resource=BUCKET_PATH
๋ค์์ ๋ฐ๊ฟ๋๋ค.
LOCATION
: ํ์ ์ค์บ์ ๋ง๋ค๋ ค๋ ์์นBUCKET_PATH
: ์ค์บํ ๋ฒํท์ Cloud Storage ๊ฒฝ๋ก
REST
ํ์ ์ค์บ์ ๋ง๋ค๋ ค๋ฉด dataScans.create
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฒ์๋ BigLake ํ ์ด๋ธ ์ฟผ๋ฆฌ
ํ์ ์ค์บ์ ์คํํ๋ฉด BigLake ํ ์ด๋ธ์ด BigQuery์ ์ ๋ฐ์ดํฐ ์ธํธ์ ๊ฒ์๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด BigQuery์์ SQL์ ์ฌ์ฉํ๊ฑฐ๋ Dataproc์์ Apache Spark ๋๋ HiveQL์ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ๋ถ์ํ ์ ์์ต๋๋ค.
SQL
BigQuery์์ ํ ์ด๋ธ์ ๋ณด๊ฑฐ๋ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค. BigQuery์์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ์ฟผ๋ฆฌ ์คํ์ ์ฐธ์กฐํ์ธ์.
Apache Spark
Dataproc ์๋ฒ๋ฆฌ์ค ์์ ์์ Spark SQL์ ์ฌ์ฉํ์ฌ BigLake ํ ์ด๋ธ์ ์ฟผ๋ฆฌํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
๋ค์ ์ํ ์คํฌ๋ฆฝํธ์ ์ ์ฌํ PySpark ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ญ๋๋ค.
from pyspark.sql import SparkSession session = ( SparkSession.builder.appName("testing") .config("viewsEnabled","true") .config("materializationDataset", "DATASET_ID") .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID") .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory") .enableHiveSupport() .getOrCreate() ) session.sql("show databases").show() session.sql("use TABLE_NAME").show() session.sql("show tables").show() sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10" df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql) df.show()
๋ค์์ ๋ฐ๊ฟ๋๋ค.
DATASET_ID
: ์ฌ์ฉ์์๊ฒ ๋ง๋ค๊ธฐ ๊ถํ์ด ์๋ ๋ฐ์ดํฐ ์ธํธ์ IDPROJECT_ID
: BigLake ํ ์ด๋ธ์ด ์๋ ํ๋ก์ ํธ์ IDTABLE_NAME
: BigLake ํ ์ด๋ธ์ ์ด๋ฆTABLE_ID
: BigLake ํ ์ด๋ธ์ ID
๊ฒ์๋ BigLake ํ ์ด๋ธ ๊ด๋ฆฌ
๊ฒ์๋ BigLake ํ
์ด๋ธ์ ํ์ ์ค์บ์ ํตํด BigQuery์์ ์์ฑ๋๊ณ ๊ด๋ฆฌ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ ์ค์บ์ ์์ฝ๋ ์ค์บ ๋๋ ์ฃผ๋ฌธํ ์ค์บ์ด ์คํ๋ ๋๋ง๋ค ์ ๋ฐ์ดํฐ ํ์, ์คํค๋ง ์ถ๋ก , ์คํค๋ง ๋ณ๊ฒฝ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ค์บ์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํจ์ ๋ํ๋ด๊ธฐ ์ํด ์ค์บ์ metadata-managed-mode
๋ผ๋ฒจ์ด discovery-managed
๋ก ์ค์ ๋ ํ
์ด๋ธ์ ๊ฒ์ํฉ๋๋ค.
CSV ๋๋ JSON ์ต์
๊ณผ ๊ฐ์ ์คํค๋ง ๋ฐ ๊ธฐํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ง์ ๊ด๋ฆฌํ๋ ค๋ฉด metadata-managed-mode
๋ผ๋ฒจ์ user_managed
๋ก ์ค์ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ค์ ํ์ ์ค์บ์ด ์คํ๋ ๋ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ํ์ ์ค์บ์ผ๋ก ์ถ๋ก ๋ ์คํค๋ง๊ฐ ์๋ชป๋์๊ฑฐ๋ ํน์ ํ
์ด๋ธ์ ์์๋๋ ์คํค๋ง์ ๋ค๋ฅธ ๊ฒฝ์ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค. metadata-managed-mode
๋ผ๋ฒจ์ด user_managed
๋ก ์ค์ ๋๋ฉด ๋น์ฉ์ ์ค์ผ ์ ์์ต๋๋ค.
๋ผ๋ฒจ์ ์
๋ฐ์ดํธํ๋ ค๋ฉด ๋ผ๋ฒจ ํค์ ๊ฐ์ ์์ ํ์ฌ metadata-managed-mode
๋ฅผ discovery-managed
๋์ user_managed
๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ user_managed
๋ผ๋ฒจ์ด ํ
์ด๋ธ์ ์ฐ๊ฒฐ๋์ด ์๋ ํ ํ์ ์ค์บ์ ํ
์ด๋ธ์ ์คํค๋ง๋ฅผ ์
๋ฐ์ดํธํ์ง ์์ต๋๋ค.
๊ฒ์๋ BigLake ํ ์ด๋ธ ์ ๋ฐ์ดํธ
๊ธฐ๋ณธ ๊ตฌ์ฑ์ผ๋ก ํ์ ์ค์บ ์์ ์ ์ฌ์ฉํ์ฌ ๊ฒ์๋ BigLake ํ ์ด๋ธ์ ๊ฒฝ์ฐ ์คํค๋ง ๋ฐ ๊ธฐํ ๋ฉํ๋ฐ์ดํฐ๋ ํ์ ์ค์บ ์์ ์ด ์์ฝ๋ ๋น๋๋ก ์คํ๋ ๋๋ง๋ค ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๊ฒ์๋ BigLake ํ ์ด๋ธ์ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์๊ธฐ ์ฐฝ์์ ํ๋ก์ ํธ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ํผ์น ํ ํ ์ด๋ธ์ ์ ํํฉ๋๋ค.
์ธ๋ถ์ ๋ณด ํญ์ ๋ผ๋ฒจ ์น์ ์์ metadata-managed-mode ๋ผ๋ฒจ์ด user_managed๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
์ธ๋ถ์ ๋ณด ์์ ์ ํด๋ฆญํฉ๋๋ค.
metadata-managed-mode ํค ์์ ์๋ ๊ฐ ํ๋์
user_managed
๋ฅผ ์ ๋ ฅํฉ๋๋ค.
๊ฒ์๋ BigLake ํ ์ด๋ธ ์ญ์
๊ฒ์๋ BigLake ํ ์ด๋ธ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Cloud Storage ๋ฒํท์์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ํ์ผ์ ์ญ์ ํฉ๋๋ค.
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์๊ธฐ ์ฐฝ์์ ํ๋ก์ ํธ์ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ํผ์น ํ ํ ์ด๋ธ์ ์ ํํฉ๋๋ค.
์ธ๋ถ์ ๋ณด ์ฐฝ์ ๋ผ๋ฒจ ์น์ ์์ metadata-managed-mode ๋ผ๋ฒจ์ด
user_managed
๋ก ์ค์ ๋์ด ์์ง ์์์ง ํ์ธํฉ๋๋ค.user_managed
๋ก ์ค์ ๋ ๊ฒฝ์ฐ ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.์ธ๋ถ์ ๋ณด ์์
์ ํด๋ฆญํฉ๋๋ค.metadata-managed-mode ํค ์์ ์๋ ๊ฐ ํ๋์
discovery-managed
๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์คํ์ ํด๋ฆญํฉ๋๋ค. ํ์ ์ค์บ์ ์์ฒญ ์ ์คํ๋ฉ๋๋ค.
ํ์ ์ค์บ์ด ์คํ๋๋ฉด BigLake ํ ์ด๋ธ์ด BigQuery์์ ์ญ์ ๋๋ฉฐ Spark๋ฅผ ํตํด ๋์ดํ๊ฑฐ๋ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.
์์ฒญ ์ ํ์ ์ค์บ ์คํ
์ฃผ๋ฌธํ ํ์ ์ค์บ์ ์คํํ๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์ ๋ฉ๋ด์์ ๊ฑฐ๋ฒ๋์ค > ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud Storage ํ์ ์ฐฝ์์ ์คํํ๋ ค๋ ํ์ ์ค์บ์ ํด๋ฆญํฉ๋๋ค.
์ง๊ธ ์คํ์ ํด๋ฆญํฉ๋๋ค.
gcloud
ํ์ ์ค์บ์ ์คํํ๋ ค๋ฉด gcloud dataplex datascans run
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud dataplex datascans runDATASCAN
\ --location=LOCATION
๋ค์ ๋ณ์๋ฅผ ๋ฐ๊ฟ๋๋ค.
LOCATION
: ํ์ ์ค์บ์ด ์์ฑ๋ Google Cloud ๋ฆฌ์ ์ ๋๋ค.DATASCAN
: ํ์ ์ค์บ์ ์ด๋ฆ์ ๋๋ค.
REST
์์ฒญ ์ ํ์ ์ค์บ์ ์คํํ๋ ค๋ฉด Dataplex API์์ dataScans.run
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ธ์.
ํ์ ์ค์บ ๋์ด
ํ์ ์ค์บ์ ๋์ดํ๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์ ๋ฉ๋ด์์ ๊ฑฐ๋ฒ๋์ค > ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud Storage ํ์ ์ฐฝ์๋ ํ๋ก์ ํธ์์ ์์ฑ๋ ํ์ ์ค์บ์ด ๋์ด๋ฉ๋๋ค.
gcloud
gcloud dataplex datascans list --location=LOCATION --project=PROJECT_ID
๋ค์์ ๋ฐ๊ฟ๋๋ค.
LOCATION
: ํ๋ก์ ํธ์ ์์นPROJECT_ID
: Google Cloud ํ๋ก์ ํธ ID
REST
ํ๋ก์ ํธ์ ํ์ ์ค์บ ๋ชฉ๋ก์ ๊ฒ์ํ๋ ค๋ฉด Dataplex API์์ dataScans.list
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ์ ์ค์บ ๋ณด๊ธฐ
ํ์ ์ค์บ์ ๋ณด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์ ๋ฉ๋ด์์ ๊ฑฐ๋ฒ๋์ค > ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud Storage ํ์ ์ฐฝ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํ๋ ค๋ ํ์ ์ค์บ์ ํด๋ฆญํฉ๋๋ค.
- ์ค์บ ์ธ๋ถ์ ๋ณด ์น์ ์๋ ํ์ ์ค์บ์ ๋ํ ์ธ๋ถ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
- ์ค์บ ์ํ ์น์ ์๋ ์ต์ ์ค์บ ์์ ์ ํ์ ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
gcloud
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
๋ค์์ ๋ฐ๊ฟ๋๋ค.
JOB
: ํ์ ์ค์บ ์์ ์ ์์ ID์ ๋๋ค.LOCATION
: ํ์ ์ค์บ์ด ์์ฑ๋ Google Cloud ๋ฆฌ์ ์ ๋๋ค.DATASCAN
: ์์ ์ด ์ํ ํ์ ์ค์บ์ ์ด๋ฆ์ ๋๋ค.--view=FULL
: ํ์ ์ค์บ ์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
REST
๋ฐ์ดํฐ ํ์ ์ค์บ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด Dataplex API์์ dataScans.get
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด์ ํ์ ์ค์บ ๊ฒฐ๊ณผ ๋ณด๊ธฐ
์ด์ ํ์ ์ค์บ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์ ๋ฉ๋ด์์ ๊ฑฐ๋ฒ๋์ค > ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud Storage ํ์ ์ฐฝ์์ ์ธ๋ถ์ ๋ณด๋ฅผ ํ์ธํ๋ ค๋ ํ์ ์ค์บ์ ํด๋ฆญํฉ๋๋ค.
์ค์บ ๊ธฐ๋ก ์ฐฝ์ ํด๋ฆญํฉ๋๋ค. ์ค์บ ๊ธฐ๋ก ์ฐฝ์์๋ ๊ฐ ์์ ์์ ์ค์บ๋ ๋ ์ฝ๋ ์, ๊ฐ ์์ ์ ์ํ, ์์ ์ด ์คํ๋ ์๊ฐ ๋ฑ ์ด์ ์์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์์ ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ์์ ID ์ด์์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
๋ค์์ ๋ฐ๊ฟ๋๋ค.
LOCATION
: ํ์ ์ค์บ์ด ์์ฑ๋ Google Cloud ๋ฆฌ์ ์ ๋๋ค.DATASCAN
: ์์ ์ด ์ํ ํ์ ์ค์บ์ ์ด๋ฆ์ ๋๋ค.
REST
ํ์ ์ค์บ์ ๋ชจ๋ ์์
์ ๋ณด๋ ค๋ฉด Dataplex API์์ dataScans.job/list
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ์ ์ค์บ ์ ๋ฐ์ดํธ
ํ์ ์ค์บ์ ์ผ์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด(์: ์ฃผ๋ฌธํ์์ ๋ฐ๋ณต์ผ๋ก ๋ณ๊ฒฝ) ํ์ ์ค์บ์ ์ ๋ฐ์ดํธํ์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์ ๋ฉ๋ด์์ ๊ฑฐ๋ฒ๋์ค > ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud Storage ํ์ ์ฐฝ์์ ์ ๋ฐ์ดํธํ๋ ค๋ ๊ฒ์ ์ค์บ์ ๋ํด ์์ > ์์ ์ ํด๋ฆญํฉ๋๋ค.
๊ฐ์ ์์ ํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
ํ์ ์ค์บ์ ์
๋ฐ์ดํธํ๋ ค๋ฉด gcloud dataplex datascans update data-discovery
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gcloud dataplex datascans update data-discovery SCAN_ID --location=LOCATION --description=DESCRIPTION
๋ค์์ ๋ฐ๊ฟ๋๋ค.
SCAN_ID
: ์ ๋ฐ์ดํธํ๋ ค๋ ํ์ ์ค์บ์ IDLOCATION
: ํ์ ์ค์บ์ด ์์ฑ๋ Google Cloud ๋ฆฌ์ ์ ๋๋ค.DESCRIPTION
: ํ์ ์ค์บ์ ๋ํ ์ ์ค๋ช
REST
ํ์ ์ค์บ์ ์
๋ฐ์ดํธํ๋ ค๋ฉด Dataplex API์์ dataScans.patch
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ์ ์ค์บ ์ญ์
ํ์ ์ค์บ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ BigQuery ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ์ ๋ฉ๋ด์์ ๊ฑฐ๋ฒ๋์ค > ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud Storage ๊ฒ์ ์ฐฝ์์ ์ญ์ ํ๋ ค๋ ํ์ ์ค์บ์ ๋ํด ์์ > ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud dataplex datascans delete SCAN_ID --location=LOCATION --async
๋ค์์ ๋ฐ๊ฟ๋๋ค.
SCAN_ID
: ์ญ์ ํ๋ ค๋ ํ์ ์ค์บ์ ID์ ๋๋ค.LOCATION
: ํ์ ์ค์บ์ด ์์ฑ๋ Google Cloud ๋ฆฌ์ ์ ๋๋ค.
REST
ํ์ ์ค์บ์ ์ญ์ ํ๋ ค๋ฉด Dataplex API์์ dataScans.delete
๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.