Teradata์์ BigQuery๋ก ๋ง์ด๊ทธ๋ ์ด์ - ๊ฐ์
์ด ๋ฌธ์์์๋ BigQuery Data Transfer Service๋ฅผ ์ฌ์ฉํ์ฌ Teradata์ ์คํค๋ง์ ๋ฐ์ดํฐ๋ฅผ BigQuery๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ ํ์ํ ๊ฒฐ์ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. Teradata ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ธ์ค์ ๊ดํ ์๊ฐ๋ Teradata์์ BigQuery๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์๊ฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์คํค๋ง ๋ฐ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์์ BigQuery๋ก ์ด๋ํ๋ ๋ฐ ํ์ํ ์ฌ๋ฌ ๋จ๊ณ ์ค ํ๋์ ๋๋ค. ์ผ๋ฐ์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ธ์ค์ ๋ํ ์ค๋ช ์ ๊ฐ์: BigQuery๋ก ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐธ๊ณ ํ์ธ์.
๋ํ ์ผ๊ด SQL ๋ณํ์ ์ฌ์ฉํ์ฌ SQL ์คํฌ๋ฆฝํธ๋ฅผ ์ผ๊ด์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋ ๋ํํ SQL ๋ณํ์ ์ฌ์ฉํ์ฌ ์์ ์ฟผ๋ฆฌ๋ฅผ ๋ณํํ ์ ์์ต๋๋ค. ๋ SQL ๋ณํ ์๋น์ค์์ Teradata SQL์ด ์๋ฒฝํ๊ฒ ์ง์๋ฉ๋๋ค.
๊ฐ์
BigQuery Data Transfer Service๋ฅผ ํน์ํ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ์ ํจ๊ป ์ฌ์ฉํ์ฌ ์คํค๋ง ๋ฐ ๋ฐ์ดํฐ๋ฅผ Teradata์์ BigQuery๋ก ๋ณต์ฌํ ์ ์์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ ๋ก์ปฌ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ์ฐ๊ฒฐํด BigQuery Data Transfer Service์ ํต์ ํ์ฌ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ํ ์ด๋ธ์ BigQuery๋ก ๋ณต์ฌํฉ๋๋ค.
๋ค์ ๋จ๊ณ์์๋ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ธ์ค์ ์ํฌํ๋ก๋ฅผ ์ค๋ช ํฉ๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
- BigQuery Data Transfer Service์์ ์ ์ก์ ๊ตฌ์ฑํฉ๋๋ค.
- ์ ์ก ์์ ์ ์คํํ์ฌ ํ ์ด๋ธ ์คํค๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์์ BigQuery๋ก ๋ณต์ฌํฉ๋๋ค.
- ์ ํ์ฌํญ. Google Cloud ์ฝ์์ ์ฌ์ฉํ์ฌ ์ ์ก ์์ ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
์ ์ก ์์ ๊ตฌ์ฑ
ํ์์ ๋ง๊ฒ ์ ์ก ์์ ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. Teradata์์ BigQuery๋ก ๋ฐ์ดํฐ ์ ์ก์ ์ค์ ํ๊ธฐ ์ ์ ๋ค์ ์น์ ์ ์ค๋ช ๋ ๊ตฌ์ฑ ์ต์ ์ ๊ณ ๋ คํ๊ณ ์ฌ์ฉํ ์ค์ ์ ๊ฒฐ์ ํฉ๋๋ค. ์ ํํ ์ค์ ์ ๋ฐ๋ผ ์ ์ก ์์ ์ ์์ํ๊ธฐ ์ ์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์๊ฑด์ ์๋ฃํด์ผ ํ ์๋ ์์ต๋๋ค.
๋๋ถ๋ถ์ ์์คํ , ํนํ ํฐ ํ ์ด๋ธ์ด ์๋ ์์คํ ์ ๊ฒฝ์ฐ ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค.
- Teradata ํ ์ด๋ธ์ ํํฐ์ ์ ๋๋๋๋ค.
- ์ถ์ถ์ Teradata Parallel Transporter(TPT)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ปค์คํ ์คํค๋ง ํ์ผ์ ๋ง๋ค๊ณ ๋์ BigQuery ํด๋ฌ์คํฐ๋ง ๋ฐ ํํฐ์ ๋ ์ด์ ๊ตฌ์ฑํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ ๊ฐ์ฅ ํจ์จ์ ์ธ ํํฐ์ ๋ณ ์ถ์ถ์ ์ํํ ์ ์์ต๋๋ค.
์ถ์ถ ๋ฐฉ๋ฒ
BigQuery Data Transfer Service๋ Teradata์์ BigQuery๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํ ๋ ๊ฐ์ง ์ถ์ถ ๋ฐฉ๋ฒ์ ์ง์ํฉ๋๋ค.
Teradata Parallel Transporter(TPT) tbuild ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ถ์ฅ ๋ฐฉ๋ฒ์ ๋๋ค. TPT๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ ์ถ์ถ์ด ๋ ๋นจ๋ผ์ง๋๋ค.
์ด ๋ชจ๋์์ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ ํํฐ์ ๋ณ๋ก ๋ถ์ฐ๋ ํ์ ์ฌ์ฉํ์ฌ ์ถ์ถ ๋ฐฐ์น๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์์ด์ ํธ๋ ๊ฐ ๋ฐฐ์น์ TPT ์ถ์ถ ์คํฌ๋ฆฝํธ๋ฅผ ๋ด๋ณด๋ด๊ณ ์คํํ์ฌ ํ์ดํ๋ก ๊ตฌ๋ถ๋ ํ์ผ ์ธํธ๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์ก ์์ ์์ ์ฌ์ฉ๋๋ ์ด๋ฌํ ํ์ผ์ Cloud Storage ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค. ํ์ผ์ด Cloud Storage์ ์ ๋ก๋๋๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๊ฐ ๋ก์ปฌ ํ์ผ ์์คํ ์์ ํ์ผ์ ์ญ์ ํ์ต๋๋ค.
ํํฐ์ ๋๋๊ธฐ ์ด ์์ด TPT ์ถ์ถ์ ์ฌ์ฉํ๋ฉด ์ ์ฒด ํ ์ด๋ธ์ด ์ถ์ถ๋ฉ๋๋ค. ํํฐ์ ๋๋๊ธฐ ์ด๊ณผ ํจ๊ป TPT ์ถ์ถ์ ์ฌ์ฉํ๋ฉด ์์ด์ ํธ๋ ํํฐ์ ์ธํธ๋ฅผ ์ถ์ถํฉ๋๋ค.
์ด ๋ชจ๋์์ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ ์ถ์ถ๋ ํ์ผ์ด ๋ก์ปฌ ํ์ผ ์์คํ ์์ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ์ ํํ์ง ์์ต๋๋ค. ํํฐ์ ๋๋๊ธฐ ์ด ์ง์ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ก์ปฌ ํ์ผ ์์คํ ์ ๊ฐ์ฅ ํฐ ํํฐ์ ๋๋ ๊ฐ์ฅ ํฐ ํ ์ด๋ธ์ ํฌ๊ธฐ๋ณด๋ค ๋ ๋ง์ ๊ณต๊ฐ์ด ์๋์ง ํ์ธํฉ๋๋ค.
JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ FastExport ์ฐ๊ฒฐ๋ก ์ถ์ถ ์ถ์ถ๋ ํ์ผ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ก์ปฌ ์ ์ฅ๊ณต๊ฐ์ ์ ์ฝ์กฐ๊ฑด์ด ์๊ฑฐ๋ ์ฌํํ ์ด์ ๋ก TPT๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ด ์ถ์ถ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ชจ๋์์ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ ํ ์ด๋ธ์ ๋ก์ปฌ ํ์ผ ์์คํ ์ AVRO ํ์ผ ์ปฌ๋ ์ ์ผ๋ก ์ถ์ถํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์ก ์์ ์์ ์ฌ์ฉ๋๋ ์ด๋ฌํ ํ์ผ์ Cloud Storage ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค. ํ์ผ์ด Cloud Storage์ ์ ๋ก๋๋๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๊ฐ ๋ก์ปฌ ํ์ผ ์์คํ ์์ ํ์ผ์ ์ญ์ ํฉ๋๋ค.
์ด ๋ชจ๋์์๋ AVRO ํ์ผ์ด ๋ก์ปฌ ํ์ผ ์์คํ ์์ ์ฌ์ฉํ๋ ๊ณต๊ฐ์ ์ ํํ ์ ์์ต๋๋ค. ์ด ์ ํ์ ์ด๊ณผํ๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ์์ ๊ธฐ์กด AVRO ํ์ผ์ ์ ๋ก๋ํ๊ณ ์ญ์ ํ์ฌ ๊ณต๊ฐ์ด ํ๋ณด๋ ๋๊น์ง ์ถ์ถ์ด ์ผ์ ์ค์ง๋ฉ๋๋ค.
์คํค๋ง ์๋ณ
์คํค๋ง๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. BigQuery Data Transfer Service๋ Teradata์์ BigQuery๋ก์ ๋ฐ์ดํฐ ์ ์ก ์ค์ ์๋ ์คํค๋ง ๊ฐ์ง ๋ฐ ๋ฐ์ดํฐ ์ ํ ๋งคํ์ ์ ๊ณตํฉ๋๋ค. ๋ณํ ์์ง์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ ํ ๋งคํ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ๋์ ์ปค์คํ ์คํค๋ง ํ์ผ์ ์ง์ ํ ์๋ ์์ต๋๋ค.
๊ธฐ๋ณธ ์คํค๋ง ๊ฐ์ง
์คํค๋ง ๊ตฌ์ฑ์ ์ง์ ํ์ง ์์ผ๋ฉด BigQuery Data Transfer Service๋ Teradata ์์ค ํ ์ด๋ธ์ ์คํค๋ง๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ๋ฐ์ดํฐ ์ ์ก ์ค์ ์์ํ๋ BigQuery ๋ฐ์ดํฐ ์ ํ์ผ๋ก ๋ฐ์ดํฐ ์ ํ ๋งคํ์ ์ํํฉ๋๋ค. ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ํ ๋งคํ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ ์ ํ์ ์ฐธ๊ณ ํ์ธ์.
์คํค๋ง์ ๋ณํ ์์ง ์ถ๋ ฅ ์ฌ์ฉ
BigQuery Data Transfer Service๋ Teradata ํ ์ด๋ธ์ BigQuery๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋์ ์คํค๋ง ๋งคํ์ BigQuery ๋ณํ ์์ง์ ์ถ๋ ฅ์ ์ฌ์ฉํฉ๋๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ๊ธฐ๋ณธ ์๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
- ๋ณํ์ ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. ๋คํผ ๋๊ตฌ๋ฅผ ์คํํ์ฌ Teradata ์์ค ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ผ ๋ณํ์ ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณํ ๋ฐ ํ๊ฐ๋ฅผ ์ํ ๋ฉํ๋ฐ์ดํฐ ์์ฑ์ ์ฐธ์กฐํ์ธ์.
- ์์ฑ๋ ๋ฉํ๋ฐ์ดํฐ ํ์ผ(์:
metadata.zip
)์ Cloud Storage ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค. ์ด ๋ฒํท์ ๋ณํ ์์ง์ ์ ๋ ฅ ์์น ์ญํ ์ ํฉ๋๋ค. ์ผ๊ด ๋ณํ ์์ ์ ์์ํ์ฌ ๋์ BigQuery ํ ์ด๋ธ์ ์คํค๋ง๋ฅผ ์ ์ํ๋ BigQuery Data Transfer Service ๋งคํ์ ๋ง๋ญ๋๋ค. ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ผ๊ด ๋ณํ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ๋ค์ ์์์์๋
target_types = "dts_mapping"
์ ์ง์ ํ์ฌ BigQuery Data Transfer Service ๋งคํ์ ์์ฑํฉ๋๋ค.curl -d "{ \"name\": \"teradata_2_bq_translation\", \"displayName\": \"Teradata to BigQuery Translation\", \"tasks\": { string: { \"type\": \"Teradata2BigQuery_Translation\", \"translation_details\": { \"target_base_uri\": \"gs://your_translation_output_bucket/output\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"gs://your_metadata_bucket/input\" } }, \"target_types\": \"metadata\", } } }, }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/your_project_id/locations/your_location/workflows
Google Cloud ์ฝ์์์ BigQuery -> SQL ๋ณํ์ผ๋ก ์ด๋ํ์ฌ ์ผ๊ด ๋ณํ ์์ ์ ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์๋ฃ๋๋ฉด ๋งคํ ํ์ผ์ด
target_base_uri
ํ๋๊ทธ์ ์ง์ ๋ Cloud Storage ์์น์ ์ ์ฅ๋ฉ๋๋ค.ํ ํฐ์ ์์ฑํ๋ ค๋ฉด
gcloud auth print-access-token
๋ช ๋ น์ด ๋๋ OAuth 2.0 Playground(https://www.googleapis.com/auth/cloud-platform
๋ฒ์ ์ฌ์ฉ)๋ฅผ ์ฌ์ฉํฉ๋๋ค.Teradata ๋ฐ์ดํฐ ์ ์ก ๊ตฌ์ฑ์์ ์ด์ ๋จ๊ณ์ ๋งคํ ํ์ผ์ด ์ ์ฅ๋ Cloud Storage ํด๋์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. BigQuery Data Transfer Service๋ ์ด ๋งคํ์ ์ฌ์ฉํ์ฌ ๋์ BigQuery ํ ์ด๋ธ์ ์คํค๋ง๋ฅผ ์ ์ํฉ๋๋ค.
์ปค์คํ ์คํค๋ง ํ์ผ
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ปค์คํ ์คํค๋ง๋ฅผ ์ง์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํํฐ์ ๋๋๊ธฐ์ ๊ฐ์ด ๋ง์ด๊ทธ๋ ์ด์ ์ค์ ์์ค๋ ์ ์๋ ํ ์ด๋ธ์ ๋ํ ์ค์ํ ์ ๋ณด๋ฅผ ์บก์ฒํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ฆ๋ถ ์ ์ก์๋ BigQuery์ ๋ก๋ํ ๋ ํ์ ์ ์ก์ ๋ฐ์ดํฐ ํํฐ์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋๋ ์ ์๋๋ก ์ง์ ๋ ์คํค๋ง ํ์ผ์ด ์์ด์ผ ํฉ๋๋ค. ์คํค๋ง ํ์ผ์ ์์ผ๋ฉด ์ ์ก์ด ์คํ๋ ๋๋ง๋ค BigQuery Data Transfer Service๋ ์ ์ก ์ค์ธ ์์ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ํ ์ด๋ธ ์คํค๋ง๋ฅผ ์ ์ฉํ๋ฉฐ ํํฐ์ ๋, ํด๋ฌ์คํฐ๋ง, ๊ธฐ๋ณธ ํค, ๋ณ๊ฒฝ ์ถ์ ์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ์์ค๋ฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ก ์ค์ ์ด ์ด๋ฆ์ด๋ ๋ฐ์ดํฐ ์ ํ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
์ปค์คํ
์คํค๋ง ํ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ฅผ ์ค๋ช
ํ๋ JSON ํ์ผ์
๋๋ค. ์คํค๋ง์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์งํฉ์ด ํฌํจ๋๋ฉฐ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ํ
์ด๋ธ ์งํฉ์ด, ๊ฐ ํ
์ด๋ธ์๋ ์ด ์งํฉ์ด ํฌํจ๋ฉ๋๋ค. ๊ฐ ๊ฐ์ฒด์๋ Teradata์ ๊ฐ์ฒด ์ด๋ฆ์ ๋ํ๋ด๋ originalName
ํ๋์ BigQuery์ ๊ฐ์ฒด์ ๋์ ์ด๋ฆ์ ๋ํ๋ด๋ name
ํ๋๊ฐ ์์ต๋๋ค.
์ด์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ์์ต๋๋ค.
originalType
: Teradata์ ์ด ๋ฐ์ดํฐ ์ ํ์ ๋ํ๋ ๋๋ค.type
: BigQuery์ ์ด ๋์ ๋ฐ์ดํฐ ์ ํ์ ๋ํ๋ ๋๋ค.usageType
: ์์คํ ์์ ์ด์ด ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๊ดํ ์ ๋ณด์ ๋๋ค. ์ง์๋๋ ์ฌ์ฉ ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.DEFAULT
: ์ด ์ฌ์ฉ ์ ํ์ ํตํด ํ ๋์ ํ ์ด๋ธ์ ์ฌ๋ฌ ์ด์ ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ดusageType
์ ํด๋น ์ด์ด ์์ค ์์คํ ์์ ํน๋ณํ ์ฉ๋๊ฐ ์์์ ๋ํ๋ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๋๋ค.CLUSTERING
: ์ด ์ฌ์ฉ ์ ํ์ผ๋ก ๊ฐ ๋์ ํ ์ด๋ธ์์ ์ต๋ 4๊ฐ์ ์ด์ ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ๋ง์ ์ด ์์๋ ์ปค์คํ ์คํค๋ง์ ํ์๋๋ ์์์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค. ์ ํํ ์ด์ด BigQuery์์ ํด๋ฌ์คํฐ๋งํ๊ธฐ ์ํ ์ ์ฝ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. ๋์ผํ ํ ์ด๋ธ์PARTITIONING
ํ๋๊ฐ ์ง์ ๋๋ฉด BigQuery๋ ์ด๋ฌํ ์ด์ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ๋ง๋ ํ ์ด๋ธ์ ๋ง๋ญ๋๋ค.PARTITIONING
: ์ด ์ฌ์ฉ ์ ํ์ผ๋ก ๊ฐ ๋์ ํ ์ด๋ธ์์ ํ๋์ ์ด์๋ง ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ์ด์ ํฌํจ๋tables
๊ฐ์ฒด์ ํํฐ์ ์ ๋๋ ํ ์ด๋ธ ์ ์์ ์ฌ์ฉ๋ฉ๋๋ค.TIMESTAMP
๋๋DATE
๋ฐ์ดํฐ ์ ํ์ด ์๋ ์ด์๋ง ์ด ์ฌ์ฉ ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.COMMIT_TIMESTAMP
: ์ด ์ฌ์ฉ ์ ํ์ผ๋ก ๊ฐ ๋์ ํ ์ด๋ธ์์ ํ๋์ ์ด์๋ง ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ดusageType
์ ์ฌ์ฉํ์ฌ ์ฆ๋ถ ์ ๋ฐ์ดํธ์ ์ ๋ฐ์ดํธ ํ์์คํฌํ ์ด์ ์๋ณํฉ๋๋ค. ์ด ์ด์ ๋ง์ง๋ง ์ ์ก ์คํ ์ดํ ์์ฑ ๋๋ ์ ๋ฐ์ดํธ๋ ํ์ ์ถ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ฌ์ฉ ์ ํ์TIMESTAMP
๋๋DATE
๋ฐ์ดํฐ ์ ํ์ ํฌํจํ๋ ์ด์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.PRIMARY_KEY
: ์ด ์ฌ์ฉ ์ ํ์ผ๋ก ๊ฐ ๋์ ํ ์ด๋ธ์ ์ด์ ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ์ฌ์ฉ ์ ํ์ ์ฌ์ฉํ์ฌ ํ๋์ ์ด๋ง ๊ธฐ๋ณธ ํค๋ก ์๋ณํ๊ฑฐ๋ ๋ณตํฉ ํค์ ๊ฒฝ์ฐ ์ฌ๋ฌ ์ด์ ๋์ผํ ์ฌ์ฉ ์ ํ์ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ๊ณ ์ ํญ๋ชฉ์ ์๋ณํฉ๋๋ค. ์ด๋ฌํ ์ด์COMMIT_TIMESTAMP
์ ํจ๊ป ์๋ํ์ฌ ๋ง์ง๋ง ์ ์ก ์คํ ์ดํ ์์ฑ ๋๋ ์ ๋ฐ์ดํธ๋ ํ์ ์ถ์ถํฉ๋๋ค.
๋ค์ ์์์ ๊ฐ์ด ์ปค์คํ ์คํค๋ง ํ์ผ์ ์๋์ผ๋ก ๋ง๋ค๊ฑฐ๋ ์์ด์ ํธ๋ฅผ ์ด๊ธฐํํ ๋ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๊ฐ ์์ฑํ๋๋ก ํ ์ ์์ต๋๋ค.
์ด ์์์์๋ ์ฌ์ฉ์๊ฐ ๋ค์ ํ
์ด๋ธ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ tpch
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ orders
๋ผ๋ Teradata ํ
์ด๋ธ์ ๋ง์ด๊ทธ๋ ์ด์
ํ๊ณ ์์ต๋๋ค.
CREATE SET TABLE TPCH.orders ,FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT, DEFAULT MERGEBLOCKRATIO, MAP = TD_MAP1 ( O_ORDERKEY INTEGER NOT NULL, O_CUSTKEY INTEGER NOT NULL, O_ORDERSTATUS CHAR(1) CHARACTER SET LATIN CASESPECIFIC NOT NULL, O_TOTALPRICE DECIMAL(15,2) NOT NULL, O_ORDERDATE DATE FORMAT 'yyyy-mm-dd' NOT NULL, O_ORDERPRIORITY CHAR(15) CHARACTER SET LATIN CASESPECIFIC NOT NULL, O_CLERK CHAR(15) CHARACTER SET LATIN CASESPECIFIC NOT NULL, O_SHIPPRIORITY INTEGER NOT NULL, O_COMMENT VARCHAR(79) CHARACTER SET LATIN CASESPECIFIC NOT NULL) UNIQUE PRIMARY INDEX ( O_ORDERKEY );
BigQuery๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ์ฌ ์คํค๋ง๋ฅผ ๊ตฌ์ฑํ๋ ค๊ณ ํฉ๋๋ค.
O_CUSTKEY
์ด ์ด๋ฆ์O_CUSTOMERKEY
๋ก ๋ฐ๊ฟ๋๋ค.O_ORDERDATE
๋ฅผ ํํฐ์ ๋ ์ด๋ก ์๋ณํฉ๋๋ค.
๋ค์ ์์๋ ์ด๋ฌํ ์ค์ ์ ๊ตฌ์ฑํ๋ ์ปค์คํ ์คํค๋ง์ ๋๋ค.
{
"databases": [
{
"name": "tpch",
"originalName": "e2e_db",
"tables": [
{
"name": "orders",
"originalName": "orders",
"columns": [
{
"name": "O_ORDERKEY",
"originalName": "O_ORDERKEY",
"type": "INT64",
"originalType": "integer",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 4
},
{
"name": "O_CUSTOMERKEY",
"originalName": "O_CUSTKEY",
"type": "INT64",
"originalType": "integer",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 4
},
{
"name": "O_ORDERSTATUS",
"originalName": "O_ORDERSTATUS",
"type": "STRING",
"originalType": "character",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 1
},
{
"name": "O_TOTALPRICE",
"originalName": "O_TOTALPRICE",
"type": "NUMERIC",
"originalType": "decimal",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 8
},
{
"name": "O_ORDERDATE",
"originalName": "O_ORDERDATE",
"type": "DATE",
"originalType": "date",
"usageType": [
"PARTITIONING"
],
"isRequired": true,
"originalColumnLength": 4
},
{
"name": "O_ORDERPRIORITY",
"originalName": "O_ORDERPRIORITY",
"type": "STRING",
"originalType": "character",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 15
},
{
"name": "O_CLERK",
"originalName": "O_CLERK",
"type": "STRING",
"originalType": "character",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 15
},
{
"name": "O_SHIPPRIORITY",
"originalName": "O_SHIPPRIORITY",
"type": "INT64",
"originalType": "integer",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 4
},
{
"name": "O_COMMENT",
"originalName": "O_COMMENT",
"type": "STRING",
"originalType": "varchar",
"usageType": [
"DEFAULT"
],
"isRequired": true,
"originalColumnLength": 79
}
]
}
]
}
]
}
์ฃผ๋ฌธํ ๋๋ ์ฆ๋ถ ์ ์ก
Teradata ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค์์ BigQuery๋ก ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ BigQuery Data Transfer Service๋ ์ ์ฒด ์ ์ก(์ฃผ๋ฌธํ ์ ์ก)๊ณผ ๋ฐ๋ณต ์ ์ก(์ฆ๋ถ ์ ์ก)์ ๋ชจ๋ ์ง์ํฉ๋๋ค. ์ ์ก ์ค์ ์, ์ผ์ ์ต์ ์์ ์ ์ก์ ์ฃผ๋ฌธํ ๋๋ ์ฆ๋ถ์ผ๋ก ์ง์ ํฉ๋๋ค.
์ฃผ๋ฌธํ ์ ์ก: ์ด ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด Teradata์์ BigQuery๋ก ์คํค๋ง ๋ฐ ๋ฐ์ดํฐ์ ์ ์ฒด ์ค๋ ์ท ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํํ ์ ์์ต๋๋ค.
์์ฝ๋ ์ ์ก: ์ด ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ์ค๋ ์ท์ ์ํํ๊ณ ์๋ก์ด ๋ฐ์ดํฐ ๋ฐ ์์ ๋ ๋ฐ์ดํฐ(์ฆ๋ถ ๋ฐ์ดํฐ)๋ฅผ Teradata์์ BigQuery๋ก ์ ๊ธฐ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค. ์ฆ๋ถ ์ ์ก์ ์ํํ๋ ค๋ฉด ์๋ ์ฌ์ฉ ์ฌ๋ก ์ค ํ๋๋ก ์ด์ ์ฃผ์์ ์ถ๊ฐํ๋๋ก ์คํค๋ง๋ฅผ ๋ง์ถค์ค์ ํด์ผ ํฉ๋๋ค.
COMMIT_TIMESTAMP
์ฌ์ฉ ์ ํ์ผ๋ก๋ง ์ด์ ์ฃผ์ ์ถ๊ฐ: ์ด ์ ์ก์์ Teradata์ ์ ํ ๋๋ ์์ ๋ ํ์ด BigQuery์ ๋ฐ์ดํฐ์ ์ถ๊ฐ๋ฉ๋๋ค. BigQuery ํ ์ด๋ธ์ ์ ๋ฐ์ดํธ๋ ํ์๋ ์ด์ ๊ฐ๊ณผ ์ ๊ฐ์ด ์๋ ์ค๋ณต ํ์ด ํฌํจ๋ ์ ์์ต๋๋ค.COMMIT_TIMESTAMP
๋ฐPRIMARY_KEY
์ฌ์ฉ ์ ํ์ผ๋ก ์ด์ ์ฃผ์ ์ถ๊ฐ: ์ด ์ ์ก์์๋ ์ ํ์ด ์ถ๊ฐ๋๊ณ ์์ ๋ ํ์ด BigQuery์ ํด๋น ํ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.PRIMARY_KEY
์ ์ ์๋ ์ด์ BigQuery์์ ๋ฐ์ดํฐ์ ๊ณ ์ ์ฑ์ ์ ์งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.- ์คํค๋ง์ ์ ์๋
PRIMARY_KEY
์ด์ Teradata ํ ์ด๋ธ์์PRIMARY_KEY
์ผ ํ์๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์ด์ด ๋ ์ ์์ง๋ง ๊ณ ์ ํ ๋ฐ์ดํฐ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
์ฆ๋ถ ์ ์ก
์ฆ๋ถ ์ ์ก์์ ์ฒซ ๋ฒ์งธ ์ ์ก์ ๋ฐ๋์ BigQuery์์ ํ ์ด๋ธ ์ค๋ ์ท์ ๋ง๋ญ๋๋ค. ์ดํ์ ๋ชจ๋ ์ฆ๋ถ ์ ์ก์ ์๋ ์ค๋ช ๋ ์ปค์คํ ์คํค๋ง ํ์ผ์ ์ ์๋ ์ฃผ์์ ๋ฐ๋ฆ ๋๋ค.
๊ฐ ์ ์ก ์คํ์ ๋ํด ํ์์คํฌํ๊ฐ ์ ์ฅ๋ฉ๋๋ค. ์ดํ ์ ์ก ์คํ๋ง๋ค ์์ด์ ํธ๋ ์ด์ ์ ์ก ์คํ(T1)์ ํ์์คํฌํ์ ํ์ฌ ์ ์ก ์คํ์ด ์์๋ ํ์์คํฌํ(T2)๋ฅผ ์์ ํฉ๋๋ค.
์ต์ด ์คํ ํ ์ ์ก์ ๊ฒฝ์ฐ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ ํ ์ด๋ธ๋ณ ๋ก์ง์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํฉ๋๋ค.
- ์คํค๋ง ํ์ผ์ ํ
์ด๋ธ ๊ฐ์ฒด์
COMMIT_TIMESTAMP
์ฌ์ฉ๋ ์ ํ์ ์ด์ด ์์ผ๋ฉด ํ ์ด๋ธ์ ๊ฑด๋๋๋๋ค. COMMIT_TIMESTAMP
์ฌ์ฉ๋ ์ ํ์ ์ด์ด ์๋ ๊ฒฝ์ฐ T1๊ณผ T2 ์ฌ์ด์ ํ์์คํฌํ๊ฐ ์๋ ๋ชจ๋ ํ์ด ์ถ์ถ๋์ด BigQuery์ ๊ธฐ์กด ํ ์ด๋ธ์ ์ถ๊ฐ๋ฉ๋๋ค.- ํ
์ด๋ธ์ ์ฌ์ฉ๋ ์ ํ์ด
COMMIT_TIMESTAMP
์ธ ์ด๊ณผPRIMARY_KEY
์ฌ์ฉ๋ ์ ํ์ ์ด์ด ์์ผ๋ฉด T1๊ณผ T2 ์ฌ์ด์ ํ์์คํฌํ๊ฐ ์๋ ๋ชจ๋ ํ์ด ์ถ์ถ๋ฉ๋๋ค. ์ ํ์ ์ถ๊ฐ๋๊ณ ์์ ๋ ํ์ BigQuery์ ๊ธฐ์กด ํ ์ด๋ธ์์ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๋ค์์ ์ฆ๋ถ ์ ์ก์ ์ํ ์คํค๋ง ํ์ผ์ ์์์ ๋๋ค.
COMMIT_TIMESTAMP
๋ง ์๋ ์คํค๋ง
{
"databases": [
{
"name": "abc_db",
"originalName": "abc_db",
"tables": [
{
"name": "abc_table",
"originalName": "abc_table",
"columns": [
{
"name": "Id",
"originalName": "Id",
"type": "INT64",
"originalType": "integer",
"originalColumnLength": 4,
"usageType": [
"DEFAULT"
],
"isRequired": true
},
{
"name": "timestamp",
"originalName": "timestamp",
"type": "TIMESTAMP",
"originalType": "timestamp",
"originalColumnLength": 26,
"usageType": [
"COMMIT_TIMESTAMP"
],
"isRequired": false
}
]
}
]
}
]
}
COMMIT_TIMESTAMP
๋ฐ ์ด(ID) 1๊ฐ๊ฐ PRIMARY_KEY
์ธ ์คํค๋ง
{
"databases": [
{
"name": "abc_db",
"originalName": "abc_db",
"tables": [
{
"name": "abc_table",
"originalName": "abc_table",
"columns": [
{
"name": "Id",
"originalName": "Id",
"type": "INT64",
"originalType": "integer",
"originalColumnLength": 4,
"usageType": [
"PRIMARY_KEY"
],
"isRequired": true
},
{
"name": "timestamp",
"originalName": "timestamp",
"type": "TIMESTAMP",
"originalType": "timestamp",
"originalColumnLength": 26,
"usageType": [
"COMMIT_TIMESTAMP"
],
"isRequired": false
}
]
}
]
}
]
}
COMMIT_TIMESTAMP
๋ฐ ๋ณตํฉ ํค(ID + ์ด๋ฆ)๊ฐ PRIMARY_KEY
์ธ ์คํค๋ง
{
"databases": [
{
"name": "abc_db",
"originalName": "abc_db",
"tables": [
{
"name": "abc_table",
"originalName": "abc_table",
"columns": [
{
"name": "Id",
"originalName": "Id",
"type": "INT64",
"originalType": "integer",
"originalColumnLength": 4,
"usageType": [
"PRIMARY_KEY"
],
"isRequired": true
},
{
"name": "Name",
"originalName": "Name",
"type": "STRING",
"originalType": "character",
"originalColumnLength": 30,
"usageType": [
"PRIMARY_KEY"
],
"isRequired": false
},
{
"name": "timestamp",
"originalName": "timestamp",
"type": "TIMESTAMP",
"originalType": "timestamp",
"originalColumnLength": 26,
"usageType": [
"COMMIT_TIMESTAMP"
],
"isRequired": false
}
]
}
]
}
]
}
๋ค์ ํ์์๋ ๋ง์ด๊ทธ๋ ์ด์ ์์ด์ ํธ๊ฐ ์ฆ๋ถ ์ ์ก์ ๋ฐ์ดํฐ ์ ์ ์ธ์ด(DDL) ๋ฐ ๋ฐ์ดํฐ ์กฐ์ ์ธ์ด(DML) ์์ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Teradata ์์ | ์ ํ | Teradata์์ BigQuery๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ง์ |
---|---|---|
CREATE |
DDL | ํ ์ด๋ธ์ ์๋ก์ด ์ ์ฒด ์ค๋ ์ท์ด BigQuery์ ์์ฑ๋ฉ๋๋ค. |
DROP |
DDL | ์ง์๋์ง ์์ |
ALTER (RENAME ) |
DDL | ํ ์ด๋ธ ์ด๋ฆ์ด ์ง์ ๋ ์๋ก์ด ์ ์ฒด ์ค๋ ์ท์ด BigQuery์ ์์ฑ๋ฉ๋๋ค. ์ด์ ์ค๋ ์ท์ BigQuery์์ ์ญ์ ๋์ง ์์ต๋๋ค}. ์ฌ์ฉ์์๊ฒ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ํ ์ด๋ธ์ ๋ํ ์๋ฆผ์ด ํ์๋์ง ์์ต๋๋ค. |
INSERT |
DML | BigQuery ํ ์ด๋ธ์ ์ ํ์ด ์ถ๊ฐ๋ฉ๋๋ค. |
UPDATE |
DML | COMMIT_TIMESTAMP ๋ง ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ INSERT ์์
๊ณผ ๋น์ทํ๊ฒ, BigQuery ํ
์ด๋ธ์ ํ์ด ์๋ก ์ถ๊ฐ๋ฉ๋๋ค.
COMMIT_TIMESTAMP ๋ฐ PRIMARY_KEY ์ด ๋ชจ๋ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ UPDATE ์์
๊ณผ ๋น์ทํ๊ฒ ํ์ด ์
๋ฐ์ดํธ๋ฉ๋๋ค. |
MERGE |
DML | ์ง์๋์ง ์์ ๋์ INSERT , UPDATE , DELETE ๋ฅผ ์ฐธ์กฐํ์ธ์. |
DELETE |
DML | ์ง์๋์ง ์์ |
์์น ๊ณ ๋ ค์ฌํญ
Cloud Storage ๋ฒํท์ BigQuery์์ ๋์ ๋ฐ์ดํฐ ์ธํธ์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ๊ณผ ํธํ๋๋ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค.
- BigQuery ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋ฉํฐ ๋ฆฌ์ ์ ์์ผ๋ฉด ์ ์ก ์ค์ธ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ Cloud Storage ๋ฒํท์ ๋์ผํ ๋ฉํฐ ๋ฆฌ์ ์ด๋ ๋ฉํฐ ๋ฆฌ์ ๋ด์ ํฌํจ๋ ์์น์ ์์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด BigQuery ๋ฐ์ดํฐ ์ธํธ๊ฐ
EU
๋ฉํฐ ๋ฆฌ์ ์ ์์ผ๋ฉด Cloud Storage ๋ฒํท์ EU ๋ด์ ์๋europe-west1
๋ฒจ๊ธฐ์ ๋ฆฌ์ ์ ์์ ์ ์์ต๋๋ค. - ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋จ์ผ ๋ฆฌ์ ์ ์์ผ๋ฉด Cloud Storage ๋ฒํท์ ๊ฐ์ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ์ธํธ๊ฐ
asia-northeast1
๋์ฟ ๋ฆฌ์ ์ ์์ผ๋ฉด Cloud Storage ๋ฒํท์ASIA
๋ฉํฐ ๋ฆฌ์ ์ ์์ ์ ์์ต๋๋ค.
์ ์ก ๋ฐ ๋ฆฌ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ ์ธํธ ์์น ๋ฐ ์ ์ก์ ์ฐธ์กฐํ์ธ์.
๊ฐ๊ฒฉ ์ฑ ์
BigQuery๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ ์ ์ก์ ๋ฌด๋ฃ์ ๋๋ค. ํ์ง๋ง ์ด ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉด Google ์ธ๋ถ์์ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค(์: ํ๋ซํผ ์์๋ฐ์ด๋ ๋ฐ์ดํฐ ์ ์ก ์๊ธ).
- ์ถ์ถ, Cloud Storage ๋ฒํท์ ์ ๋ก๋, BigQuery์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๊ฒ์ ๋ฌด๋ฃ์ ๋๋ค.
- BigQuery์ ์ ๋ก๋๋ ๋ฐ์ดํฐ๋ Cloud Storage ๋ฒํท์์ ์๋์ผ๋ก ์ญ์ ๋์ง ์์ต๋๋ค. ์ถ๊ฐ ์คํ ๋ฆฌ์ง ๋น์ฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด Cloud Storage ๋ฒํท์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ธ์. Cloud Storage ๊ฐ๊ฒฉ ์ฑ ์ ์ ์ฐธ์กฐํ์ธ์.
- ๋ก๋ ์์ ์ ๋ํ ํ์ค BigQuery ํ ๋น๋ ๋ฐ ํ๋๊ฐ ์ ์ฉ๋ฉ๋๋ค.
- ์ฆ๋ถ ์์ง ์ฝ์ /์ ๋ฐ์ดํธ(upsert)์ ๋ํ ํ์ค DML BigQuery ํ ๋น๋ ๋ฐ ํ๋๊ฐ ์ ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ๊ฐ BigQuery๋ก ์ ์ก๋ ํ์๋ BigQuery์ ํ์ค ์คํ ๋ฆฌ์ง ๋ฐ ์ปดํจํ ๊ฐ๊ฒฉ์ด ์ ์ฉ๋ฉ๋๋ค.
- ์์ธํ ๋ด์ฉ์ ์ ์ก ๊ฐ๊ฒฉ ์ฑ ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ํ์ฌํญ
- ์ผํ์ฑ ์ฃผ๋ฌธํ ์ ์ก์ ์์ ํ ์ง์๋ฉ๋๋ค. ์ฆ๋ถ ์ ์ก์ DDL/DML ์์ ์ ๋ถ๋ถ์ ์ผ๋ก ์ง์๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ์ก ์ค์ ๋ฐ์ดํฐ๋ ๋ก์ปฌ ํ์ผ ์์คํ
์ ๋๋ ํฐ๋ฆฌ๋ก ์ถ์ถ๋ฉ๋๋ค. ์ถฉ๋ถํ ์ฌ์ ๊ณต๊ฐ์ด ์๋์ง ํ์ธํ์ธ์.
- FastExport ์ถ์ถ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ต๋ ์ ์ฅ๊ณต๊ฐ, ๊ทธ๋ฆฌ๊ณ ๋ง์ด๊ทธ๋ ์ด์
์์ด์ ํธ๊ฐ ์๊ฒฉํ๊ฒ ์ ์ฉํ ํ๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. Teradata์์ BigQuery๋ก ์ ์ก์ ์ค์ ํ ๋ ๋ง์ด๊ทธ๋ ์ด์
์์ด์ ํธ์ ๊ตฌ์ฑ ํ์ผ์
max-local-storage
์ค์ ์ ์ค์ ํฉ๋๋ค. - TPT ์ถ์ถ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ผ ์์คํ ์ ์ฌ์ ๊ณต๊ฐ์ด ์ถฉ๋ถํ์ง ํ์ธํฉ๋๋ค. Teradata ์ธ์คํด์ค์ ์๋ ๊ฐ์ฅ ํฐ ํ ์ด๋ธ ํํฐ์ ๋ณด๋ค ์ปค์ผ ํฉ๋๋ค.
- FastExport ์ถ์ถ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ต๋ ์ ์ฅ๊ณต๊ฐ, ๊ทธ๋ฆฌ๊ณ ๋ง์ด๊ทธ๋ ์ด์
์์ด์ ํธ๊ฐ ์๊ฒฉํ๊ฒ ์ ์ฉํ ํ๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. Teradata์์ BigQuery๋ก ์ ์ก์ ์ค์ ํ ๋ ๋ง์ด๊ทธ๋ ์ด์
์์ด์ ํธ์ ๊ตฌ์ฑ ํ์ผ์
- BigQuery Data Transfer Service๋ ์คํค๋ง๋ฅผ ์๋์ผ๋ก ๋ณํํ๊ณ (์ปค์คํ ์คํค๋ง ํ์ผ์ ์ ๊ณตํ์ง ์์ ๊ฒฝ์ฐ) Teradata ๋ฐ์ดํฐ๋ฅผ BigQuery๋ก ์ ์กํฉ๋๋ค. ๋ฐ์ดํฐ๋ Teradata์์ BigQuery ์ ํ์ผ๋ก ๋งคํ๋ฉ๋๋ค.
- ํ์ผ์ BigQuery์ ๋ก๋๋ ํ Cloud Storage ๋ฒํท์์ ์๋์ผ๋ก ์ญ์ ๋์ง ์์ต๋๋ค. ์ถ๊ฐ ์คํ ๋ฆฌ์ง ๋น์ฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด BigQuery๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ ํ Cloud Storage ๋ฒํท์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ธ์. ๊ฐ๊ฒฉ ์ฑ ์ ์ ์ฐธ์กฐํ์ธ์.
- ์ถ์ถ ์๋๋ JDBC ์ฐ๊ฒฐ์ ๋ฐ๋ผ ์ข์ฐ๋ฉ๋๋ค.
- Teradata์์ ์ถ์ถ๋ ๋ฐ์ดํฐ๋ ์ํธํ๋์ง ์์ต๋๋ค. ๋ก์ปฌ ํ์ผ ์์คํ ์์ ์ถ์ถ๋ ํ์ผ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๊ธฐ ์ํ ์ ์ ํ ์กฐ์น๋ฅผ ์ทจํ๊ณ Cloud Storage ๋ฒํท์ด ์ ๋๋ก ๋ณดํธ๋๋์ง ํ์ธํฉ๋๋ค.
- ๊ธฐ๋ก๋ ํ๋ก์์ , ์ ์ฅ๋ ์ฟผ๋ฆฌ, ๋ทฐ, ์ฌ์ฉ์ ์ ์ ํจ์์ ๊ฐ์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์์ค๋ ์ ์ก๋์ง ์์ผ๋ฉฐ ์ด ์๋น์ค์ ๋ฒ์์ ํฌํจ๋์ง ์์ต๋๋ค.
- ์ฆ๋ถ ์ ์ก์ ํ๋ ์ญ์ ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์ฆ๋ถ ์ ์ก์ Teradata์์ ์ญ์ ๋ ํ์ BigQuery์ ๋๊ธฐํํ์ง ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
- Teradata๋ฅผ BigQuery๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ๋จ๊ณ๋ณ ์๋ด๋ฅผ ์ฐธ์กฐํ์ธ์.
- Teradata์์ BigQuery๋ก ํ ์คํธ ๋ง์ด๊ทธ๋ ์ด์ ํด๋ณด๊ธฐ