๋Œ€๊ธฐ์—… ๊ทธ๋กœ์Šค๋งˆ์ผ€ํ„ฐ์˜ ์‹ค๋ฌด ๋ฐ์ดํ„ฐ๋ถ„์„ GPT๋กœ ์ง์ ‘ ํ•ด๋ณด๊ธฐ

์‚ฌํšŒ์ดˆ๋…„์ƒ๊ณผ ๋Œ€ํ•™์ƒ์„ ์œ„ํ•œ ์‹ค์Šตํ˜• ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‡
๋ชฉํ‘œ: CSV ๋ฐ์ดํ„ฐ๋ฅผ BigQuery์— ์˜ฌ๋ฆฌ๊ณ , GPT์˜ ๋„์›€์œผ๋กœ SQL์„ ์‹คํ–‰ํ•œ ๋’ค, ์‹ค๋ฌดํ˜• ์ธ์‚ฌ์ดํŠธ๊นŒ์ง€ ๋ฝ‘์•„๋ณด๊ธฐ
์ด ์ฝ˜ํ…์ธ ๋Š” ๊ธธ๋ฒ—์—์„œ ์„ ๋ฌผ๋กœ ์ฃผ์‹  < ๋งค์ถœ์„ ๋งŒ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ถ„์„ with ์ฑ—GPT> (2026, ์กฐ์„ ๋ฏธ ์ €) ๋„์„œ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. thanks to ๊ธธ๋ฒ—โฃ๏ธ
์ž‘์„ฑ : ๊ทธ๋กœ์Šคํ”Œ๋ž˜๋‹› ์–ด๋‹์“ฐ (2026.05)

์ด ๋ฌธ์„œ๋ฅผ ๋๊นŒ์ง€ ๋”ฐ๋ผ ํ•˜๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

  • Kaggle์—์„œ ์‹ค์Šต์šฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Google BigQuery์— CSV ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ด ๋ฐ์ดํ„ฐ์…‹๊ณผ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • SELECT * FROM ... LIMIT 1000 ํ˜•ํƒœ์˜ ์ฒซ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • SQL ๋ชฐ๋ผ๋„ ๊ฒ๋จน์ง€๋งˆ์„ธ์š”. GPT๋ž‘ ๋Œ€ํ™”ํ•˜๋ฉด์„œ ์šฉ์–ด/์ฟผ๋ฆฌ ์„ค๋ช… ๊ฐ™์ด ํ•ด๋‹ฌ๋ผ๊ณ  ํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ตํ˜€์ง‘๋‹ˆ๋‹ค.
  • GPT์—๊ฒŒ โ€œSQL ์ž‘์„ฑ โ†’ ์˜ค๋ฅ˜ ์ˆ˜์ • โ†’ ๊ฒฐ๊ณผ ํ•ด์„ โ†’ ๋‹ค์Œ ์•ก์…˜ ์ œ์•ˆโ€์„ ๋งก๊ธฐ๋Š” ๊ธฐ๋ณธ ๋ฃจํ‹ด์„ ์ตํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํžˆ ํˆด์„ ๋งŒ์ง€๋Š” ๊ฒƒ์—์„œ ๋๋‚˜์ง€ ์•Š๊ณ , ๋งˆ์ผ€ํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ ๋ณด๋Š” ๋งค์ถœ, ์ด์ต, ์นดํ…Œ๊ณ ๋ฆฌ, ๊ณ ๊ฐ ์„ธ๊ทธ๋จผํŠธ ๊ด€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ๋Š” ์ด๋Ÿฐ ์‚ฌ๋žŒ์—๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค

  • ์—‘์…€์€ ์กฐ๊ธˆ ํ•ด๋ดค์ง€๋งŒ SQL, BigQuery, ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋Š” ์ฒ˜์Œ์ธ ์‚ฌ๋žŒ
  • ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ง๋ฌด๋‚˜ ๊ทธ๋กœ์Šค๋งˆ์ผ€ํŒ…์— ๊ด€์‹ฌ ์žˆ๋Š” ๋Œ€ํ•™์ƒ, ์ทจ์ค€์ƒ, ์‚ฌํšŒ์ดˆ๋…„์ƒ
  • โ€œGPT๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋Œ€์‹  ์งœ์ค€๋‹ค๋Š”๋ฐ, ์‹ค๋ฌด์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์จ์•ผ ํ•˜์ง€?โ€๊ฐ€ ๊ถ๊ธˆํ•œ ์‚ฌ๋žŒ
  • ํฌํŠธํด๋ฆฌ์˜ค์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์‹ค์Šต์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

๊ทธ๋กœ์Šค๋งˆ์ผ€ํ„ฐ์˜ ๊ด€์ : ๋ฐ์ดํ„ฐ ๋ถ„์„์€ โ€˜ํˆดโ€™๋ณด๋‹ค โ€˜์งˆ๋ฌธโ€™์ด ๋จผ์ €์ž…๋‹ˆ๋‹ค

์‹ค๋ฌด์—์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์ž˜ํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋ณต์žกํ•œ SQL์„ ์™ธ์šฐ๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋จผ์ € ์ข‹์€ ์งˆ๋ฌธ์„ ๋˜์ง€๊ณ , ๊ทธ ์งˆ๋ฌธ์„ ๋ฐ์ดํ„ฐ๋กœ ํ™•์ธํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์•ก์…˜์œผ๋กœ ๋ฐ”๊พธ๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์‹ค๋ฌด์—์„œ GPT๋ฅผ ์“ฐ๋Š” ๋ฐฉ์‹์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

  1. ์งˆ๋ฌธ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: โ€œ์–ด๋–ค ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ๋งค์ถœ์€ ๋†’์€๋ฐ ์ด์ต๋ฅ ์€ ๋‚ฎ์„๊นŒ?โ€
  2. GPT์—๊ฒŒ SQL ์ดˆ์•ˆ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: โ€œBigQuery Standard SQL๋กœ ์ž‘์„ฑํ•ด์ค˜.โ€
  3. BigQuery์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ GPT์—๊ฒŒ ๋‹ค์‹œ ์ค๋‹ˆ๋‹ค.
  4. ๊ฒฐ๊ณผ๋ฅผ GPT์—๊ฒŒ ๋ถ™์—ฌ๋„ฃ๊ณ  ํ•ด์„์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ตœ์ข… ํŒ๋‹จ์€ ์‚ฌ๋žŒ์ด ํ•ฉ๋‹ˆ๋‹ค.
  5. ์•ก์…˜์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์˜ˆ: โ€œํ• ์ธ์œจ์ด ๋†’์€๋ฐ ์ด์ต์ด ๋‚ฎ์€ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ํ”„๋กœ๋ชจ์…˜ ์ •์ฑ…์„ ๋‹ค์‹œ ๋ณธ๋‹ค.โ€
ํ•ต์‹ฌ์€ GPT๋ฅผ โ€œ์ •๋‹ต ์ƒ์„ฑ๊ธฐโ€๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํŽ˜์–ด, ์ฆ‰ ์˜†์ž๋ฆฌ ์‚ฌ์ˆ˜์ฒ˜๋Ÿผ ์“ฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

0. ์ค€๋น„๋ฌผ

์ค€๋น„๋ฌผ์šฉ๋„
Google ๊ณ„์ •Google Cloud / BigQuery ์ ‘์†
Kaggle ๊ณ„์ •์‹ค์Šต ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ
ChatGPTSQL ์ž‘์„ฑ, ์˜ค๋ฅ˜ ์ˆ˜์ •, ๊ฒฐ๊ณผ ํ•ด์„ ๋ณด์กฐ
์›น๋ธŒ๋ผ์šฐ์ €BigQuery ์ฝ˜์†”, Kaggle ์ ‘์†
60๋ถ„ ์ •๋„์˜ ์ง‘์ค‘ ์‹œ๊ฐ„์ฒ˜์Œ ์„ธํŒ…์€ ์กฐ๊ธˆ ๋‚ฏ์„ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • Google Cloud์—์„œ ๋น…์ฟผ๋ฆฌ๋ฅผ ๋Œ๋ฆฌ๋Š”๋ฐ, ์ง„ํ–‰ํ•  ์‹ค์Šต ๋ฐ์ดํ„ฐ๋Š” ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

1. ์ „์ฒด ์‹ค์Šต ํ๋ฆ„

Kaggle์—์„œ CSV ๋‹ค์šด๋กœ๋“œ
        โ†“
BigQuery ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
        โ†“
๋ฐ์ดํ„ฐ์…‹ chapter1 ์ƒ์„ฑ
        โ†“
ํ…Œ์ด๋ธ” superstore ์ƒ์„ฑ
        โ†“
์ฒซ SQL ์ฟผ๋ฆฌ ์‹คํ–‰
        โ†“
GPT๋กœ SQL ๊ฐœ์„ , ์˜ค๋ฅ˜ ํ•ด๊ฒฐ, ๊ฒฐ๊ณผ ํ•ด์„
        โ†“
๋งˆ์ผ€ํŒ… ์ธ์‚ฌ์ดํŠธ ๋„์ถœ

์ด๋ฒˆ ์‹ค์Šต์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋Š” Kaggle์˜ Superstore Dataset์ž…๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ/๋ฆฌํ…Œ์ผ ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ ์ž์ฃผ ๋ณด๋Š” ์ฃผ๋ฌธ, ๋งค์ถœ, ์ด์ต, ์นดํ…Œ๊ณ ๋ฆฌ, ์ง€์—ญ, ๊ณ ๊ฐ ์„ธ๊ทธ๋จผํŠธ ๋“ฑ์˜ ์ปฌ๋Ÿผ์ด ๋“ค์–ด ์žˆ์–ด ๊ทธ๋กœ์Šค๋งˆ์ผ€ํŒ… ์ž…๋ฌธ์šฉ์œผ๋กœ ์ข‹์Šต๋‹ˆ๋‹ค.


2. Kaggle์—์„œ ์ƒ˜ํ”Œ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ

๋ณดํ†ต ์ƒ˜ํ”Œ๋ฐ์ดํ„ฐ๋Š” ์บ๊ธ€์—์„œ ๋งŽ์ด ๋ฐ›์Šต๋‹ˆ๋‹ค. ํ˜น์€ ํ†ต๊ณ„์ฒญ ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์ด๋‚˜ ์„œ์šธ ์—ด๋ฆฐ๋ฐ์ดํ„ฐ ๊ด‘์žฅ์—์„œ๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š” ๐Ÿ™‚ ๋งŒ์•ฝ ์›ํ•˜๋Š” ์—…๊ณ„/์ง๋ฌด ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ์…‹์ด ์—†๋‹ค๋ฉด GPT์—๊ฒŒ ์ƒ˜ํ”Œ๋กœ 20๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ์นผ๋Ÿผ์€ ํ˜„์—…์—์„œ ํ†ต์ƒ์ ์œผ๋กœ ๋งŽ์ด ์“ฐ๋Š” ๊ฑธ๋กœ ์ƒ์„ฑํ•ด๋‹ฌ๋ผ๊ณ  ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค!

2-1. ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ์ด๋™

Kaggle์˜ Superstore Dataset ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

https://www.kaggle.com/datasets/vivek468/superstore-dataset-final

Kaggle ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•œ ๋’ค Download ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค. Superstore Dataset์€ ๋งค์ถœ, ์ด์ต, ๊ณ ๊ฐ, ์ง€์—ญ, ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„์„ ์—ฐ์Šต์— ์ ํ•ฉํ•œ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

2-2. ZIP ํŒŒ์ผ ์••์ถ• ํ•ด์ œ

๋‹ค์šด๋กœ๋“œํ•œ ํŒŒ์ผ์€ ๋ณดํ†ต ZIP ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์••์ถ•์„ ํ’€๋ฉด CSV ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ฐ์ดํ„ฐ๋ถ„์„ ์‹œ์—๋Š” xlxs ์—‘์…€ ํŒŒ์ผ์ด ์•„๋‹Œ csv ํŒŒ์ผ์„ ๊ฐ€์žฅ ๋งŽ์ด ์”๋‹ˆ๋‹ค!) AI๋ฅผ ๋‹ค๋ฃฐ ์ค„ ์•„๋Š” ์‹ค๋ฌด์ž๋ผ๋ฉด MCP๋กœ๋„ ์บ๊ธ€ ๋ฐ์ดํ„ฐ ๋ฐ”๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :)

์˜ˆ์‹œ ํŒŒ์ผ๋ช…:

Sample - Superstore.csv

๋‚˜์ค‘์— BigQuery์— ์—…๋กœ๋“œํ•  ๋•Œ ์ด CSV ํŒŒ์ผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.


3. BigQuery์— ์ ‘์†ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

3-1. BigQuery ์ ‘์†

๋ธŒ๋ผ์šฐ์ €์—์„œ Google Cloud BigQuery์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

https://console.cloud.google.com/bigquery

๋˜๋Š” Google์—์„œ BigQuery๋ฅผ ๊ฒ€์ƒ‰ํ•œ ๋’ค Google Cloud์˜ BigQuery ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. BigQuery๋Š” Google Cloud์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์ž…๋‹ˆ๋‹ค. SQL๋กœ ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3-2. ๋กœ๊ทธ์ธ ๋ฐ ๊ธฐ๋ณธ ์ •๋ณด ์„ค์ •

Google ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ์ ‘์†ํ•˜๋ฉด ๊ตญ๊ฐ€, ์„œ๋น„์Šค ์•ฝ๊ด€, ์ด๋ฉ”์ผ ์—…๋ฐ์ดํŠธ ์ˆ˜์‹  ์—ฌ๋ถ€ ๋“ฑ์„ ๋ฌป๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž๋ผ๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ์ง„ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  1. ๊ตญ๊ฐ€: ๋Œ€ํ•œ๋ฏผ๊ตญ ๋˜๋Š” ๋ณธ์ธ ๊ฑฐ์ฃผ ๊ตญ๊ฐ€ ์„ ํƒ
  2. ์„œ๋น„์Šค ์•ฝ๊ด€: ๋™์˜ํ•ด์•ผ ๋‹ค์Œ ๋‹จ๊ณ„ ์ง„ํ–‰ ๊ฐ€๋Šฅ
  3. ์ด๋ฉ”์ผ ์—…๋ฐ์ดํŠธ: ์„ ํƒ ์‚ฌํ•ญ
  4. ๊ณ„์† ๋˜๋Š” ๋™์˜ ํ›„ ๊ณ„์† ํด๋ฆญ

3-3. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

BigQuery์—์„œ ์ž‘์—…ํ•˜๋ ค๋ฉด ๋จผ์ € ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด โ€œ๋ฐ์ดํ„ฐ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ด๋Š” ์ž‘์—… ๊ณต๊ฐ„โ€์ž…๋‹ˆ๋‹ค. ๋„ค๋ชจ๋ฅผ ํด๋ฆญํ•˜๋ฉด โ€˜์ƒˆ ํ”„๋กœ์ ํŠธโ€™๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.

์˜ˆ์‹œ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์€ ๋‹ค์Œ์ฒ˜๋Ÿผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„: DataAnalysis

์ฃผ์˜ํ•  ์ ์€ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๊ณผ ํ”„๋กœ์ ํŠธ ID๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ ์ด๋ฆ„: ์‚ฌ๋žŒ์ด ์•Œ์•„๋ณด๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ: DataAnalysis
  • ํ”„๋กœ์ ํŠธ ID: BigQuery ์ฟผ๋ฆฌ์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ  ID์ž…๋‹ˆ๋‹ค. ์˜ˆ: dataanalysis-449703

ํ”„๋กœ์ ํŠธ ID๋Š” ์ž๋™์œผ๋กœ ์ˆซ์ž๊ฐ€ ๋ถ™์–ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋’ค์—์„œ SQL์„ ์ž‘์„ฑํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ ID๋กœ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3-4. ํ”„๋กœ์ ํŠธ ์„ ํƒ ํ™•์ธ

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ›„ BigQuery ํ™”๋ฉด ์™ผ์ชฝ ์ƒ๋‹จ ๋˜๋Š” ํ”„๋กœ์ ํŠธ ์„ ํƒ ๋ฉ”๋‰ด์—์„œ ๋ฐฉ๊ธˆ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒ๋œ ํ”„๋กœ์ ํŠธ: DataAnalysis
ํ”„๋กœ์ ํŠธ ID: dataanalysis-449703

4. BigQuery์— CSV ์—…๋กœ๋“œํ•˜๊ธฐ

4-1. BigQuery ํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

BigQuery ์ฝ˜์†”๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๋ฉ”์ธ ํ™ˆ์—์„œ ์Šคํฌ๋กค์„ ํ•˜๋‹จ์œผ๋กœ ์ญ‰ ๋‚ด๋ฆฌ๋ฉด ์ž์ฒด ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ โ†’ ๋ฌธ์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฒ„ํŠผ์ด ์žˆ์–ด์š”! ๋กœ์ปฌ CSV ํŒŒ์ผ์„ BigQuery ํ…Œ์ด๋ธ”๋กœ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

4-2. ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ์…‹ ๋งŒ๋“ค๊ธฐ

์œ„์—์„œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€๋ฅผ ๋ˆŒ๋ €๋‹ค๋ฉด ๋œจ๋Š” ํ™”๋ฉด์— ๋‹ค์šด๋ฐ›์•˜๋˜ ์บ๊ธ€ .csv ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ์„ค์ •๊ฐ’
Create table fromUpload ๋˜๋Š” ๋กœ์ปฌ ํŒŒ์ผ
Select file์••์ถ• ํ•ด์ œํ•œ Sample - Superstore.csv
File formatCSV
Dataset์ƒˆ ๋ฐ์ดํ„ฐ์…‹ ๋งŒ๋“ค๊ธฐ
Dataset IDchapter1
Table namesuperstore
SchemaAuto detect / ์ž๋™ ๊ฐ์ง€ ์ฒดํฌ

4-3. ์ƒ์„ฑ ํ™•์ธ

๋‹ค์‹œ ๋น…์ฟผ๋ฆฌ ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉด ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์ด ๋ณด์ธ๋‹ค๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ID
โ””โ”€โ”€ chapter1
    โ””โ”€โ”€ superstore

์šฉ์–ด๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฉ์–ด์˜๋ฏธ
ProjectGoogle Cloud์˜ ์ž‘์—… ๊ณต๊ฐ„. ๋ฐ์ดํ„ฐ, ๊ถŒํ•œ, ๋น„์šฉ ๊ด€๋ฆฌ๋ฅผ ๋ฌถ๋Š” ๋‹จ์œ„
DatasetBigQuery์—์„œ ํ…Œ์ด๋ธ”์„ ๋‹ด๋Š” ์ปจํ…Œ์ด๋„ˆ
Table์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ํ‘œ. ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋จ
Schemaํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…๊ณผ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ •๋ณด

5. ์ฒซ SQL ์ฟผ๋ฆฌ ์‹คํ–‰ํ•˜๊ธฐ

5-1. ์ฟผ๋ฆฌ ํ™”๋ฉด ์—ด๊ธฐ

์ƒ์„ฑํ•ด๋‘” chapter1 > superstore ํ…Œ์ด๋ธ”์„ ๋ˆŒ๋Ÿฌ๋ณด์„ธ์š”. ํ…Œ์ด๋ธ” ์œ„์ชฝ ๋ฉ”๋‰ด์—์„œ โ€˜๋‹ค์Œ์—์„œ ์—ด๊ธฐโ€™ โ†’ SQL ์ฟผ๋ฆฌ (์ƒˆํƒญ) ์„ ๋ˆ„๋ฅด๋ฉด SQL์„ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์š”!

5-2. ์ฒซ ์ฟผ๋ฆฌ ์ž‘์„ฑ

์•„๋ž˜ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. PROJECT_ID ๋ถ€๋ถ„์€ ๋ฐ˜๋“œ์‹œ ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ ID๋กœ(์•„๋งˆ ์ƒ˜ํ”Œ์ฟผ๋ฆฌ๊ฐ€ ์จ์žˆ์„๊ฑฐ์˜ˆ์š”!) ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

SELECT *
FROM `dataanalysis-449703.chapter1.superstore`
LIMIT 1000;

5-3. ์‹คํ–‰ํ•˜๊ธฐ

์ƒ๋‹จ์˜ Run / ์‹คํ–‰ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์˜์—ญ์— ์ตœ๋Œ€ 1,000๊ฐœ์˜ ํ–‰์ด ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค.

์ด ์ฟผ๋ฆฌ๋Š” โ€œsuperstore ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ์ตœ๋Œ€ 1,000๊ฐœ ํ–‰๊นŒ์ง€ ๋ณด์—ฌ์ค˜โ€๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

SQL์˜๋ฏธ
SELECT *๋ชจ๋“  ์ปฌ๋Ÿผ์„ ์„ ํƒ
FROM ...์–ด๋–ค ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜ฌ์ง€ ์ง€์ •
LIMIT 1000๊ฒฐ๊ณผ๋ฅผ ์ตœ๋Œ€ 1,000ํ–‰๊นŒ์ง€๋งŒ ์ถœ๋ ฅ

์ฒซ ๋ฒˆ์งธ ๋ชฉํ‘œ๋Š” ๋ฉ‹์ง„ ๋ถ„์„์ด ์•„๋‹ˆ๋ผ, ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋“ค์–ด์™”๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


6. GPT๋ฅผ ์˜†์ž๋ฆฌ ์‚ฌ์ˆ˜์ฒ˜๋Ÿผ ์“ฐ๋Š” ํ”„๋กฌํ”„ํŠธ ๋ฃจํ‹ด

๋ฐ์ดํ„ฐ ๋ถ„์„ ์ž…๋ฌธ์ž๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋ง‰ํžˆ๋Š” ์ง€์ ์€ โ€œ์ด์ œ ๋ญ˜ ์งˆ๋ฌธํ•˜์ง€?โ€์ž…๋‹ˆ๋‹ค. ์ด๋•Œ GPT์—๊ฒŒ SQL๋งŒ ๋งก๊ธฐ์ง€ ๋ง๊ณ , ์งˆ๋ฌธ ์„ค๊ณ„ โ†’ SQL ์ž‘์„ฑ โ†’ ์˜ค๋ฅ˜ ์ˆ˜์ • โ†’ ๊ฒฐ๊ณผ ํ•ด์„๊นŒ์ง€ ํ•œ ํ๋ฆ„์œผ๋กœ ์š”์ฒญํ•˜์„ธ์š”.

6-1. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ธฐ

BigQuery์—์„œ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ๋˜๋Š” ์ปฌ๋Ÿผ๋ช…์„ ํ™•์ธํ•œ ๋’ค GPT์—๊ฒŒ ์ด๋ ‡๊ฒŒ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ๋Œ€ํ•™์ƒ์ด์•ผ.
BigQuery์— Superstore ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ–ˆ๊ณ , ํ…Œ์ด๋ธ” ๊ฒฝ๋กœ๋Š” `PROJECT_ID.chapter1.superstore`์•ผ.
์ปฌ๋Ÿผ์€ Row ID, Order ID, Order Date, Ship Date, Ship Mode, Customer ID, Segment, Country, City, State, Region, Product ID, Category, Sub-Category, Product Name, Sales, Quantity, Discount, Profit ๋“ฑ์ด ์žˆ์–ด.

๊ฐ ์ปฌ๋Ÿผ์ด ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€ ์ดˆ๋ณด์ž๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๋ช…ํ•ด์ค˜.
๊ทธ๋ฆฌ๊ณ  ์ด ๋ฐ์ดํ„ฐ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์„ ์งˆ๋ฌธ 10๊ฐœ๋ฅผ ๋งˆ์ผ€ํ„ฐ ๊ด€์ ์œผ๋กœ ์ œ์•ˆํ•ด์ค˜.

6-2. SQL์„ ์ž‘์„ฑํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ธฐ

์•„๋ž˜ ๋ถ„์„ ์งˆ๋ฌธ์„ BigQuery Standard SQL๋กœ ์ž‘์„ฑํ•ด์ค˜.

๋ถ„์„ ์งˆ๋ฌธ:
์นดํ…Œ๊ณ ๋ฆฌ์™€ ์„œ๋ธŒ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋งค์ถœ, ์ด์ต, ์ด์ต๋ฅ ์„ ๋ณด๊ณ  ์‹ถ์–ด.

์กฐ๊ฑด:
- ํ…Œ์ด๋ธ” ๊ฒฝ๋กœ๋Š” `PROJECT_ID.chapter1.superstore`
- ์ด์ต๋ฅ ์€ Profit / Sales๋กœ ๊ณ„์‚ฐ
- ์ด์ต์ด ๋‚ฎ์€ ์ˆœ์„œ๋กœ ์ •๋ ฌ
- ์ดˆ๋ณด์ž๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก SQL ๊ฐ ์ค„์„ ์„ค๋ช…ํ•ด์ค˜.

6-3. ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์„ ๋•Œ ์ˆ˜์ • ์š”์ฒญํ•˜๊ธฐ

BigQuery์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด์„œ GPT์—๊ฒŒ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

BigQuery์—์„œ ์•„๋ž˜ SQL์„ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์–ด.
๋‚˜๋Š” SQL ์ดˆ๋ณด์ž์•ผ.

[๋‚ด๊ฐ€ ์‹คํ–‰ํ•œ SQL]
์—ฌ๊ธฐ์— SQL ๋ถ™์—ฌ๋„ฃ๊ธฐ

[์—๋Ÿฌ ๋ฉ”์‹œ์ง€]
์—ฌ๊ธฐ์— BigQuery ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ถ™์—ฌ๋„ฃ๊ธฐ

์š”์ฒญ:
1. ์—๋Ÿฌ ์›์ธ์„ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ค˜.
2. ์ˆ˜์ •๋œ SQL์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์ค˜.
3. ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ”ผํ•˜๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์•Œ๋ ค์ค˜.

6-4. ๊ฒฐ๊ณผ๋ฅผ ํ•ด์„ํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ธฐ

์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ช‡ ์ค„ ๋ณต์‚ฌํ•ด GPT์—๊ฒŒ ์ค๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” BigQuery์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ์•ผ.
๋‚˜๋Š” ์ด ๊ฒฐ๊ณผ๋ฅผ ๋งˆ์ผ€ํŒ… ์‹ค๋ฌด ๊ด€์ ์—์„œ ํ•ด์„ํ•˜๊ณ  ์‹ถ์–ด.

[๊ฒฐ๊ณผ]
์—ฌ๊ธฐ์— ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ” ์ผ๋ถ€ ๋ถ™์—ฌ๋„ฃ๊ธฐ

์š”์ฒญ:
1. ํ•ต์‹ฌ ์ธ์‚ฌ์ดํŠธ 3๊ฐœ
2. ์™œ ๊ทธ๋ ‡๊ฒŒ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ทผ๊ฑฐ
3. ์‹ค๋ฌด์—์„œ ํ•ด๋ณผ ์•ก์…˜ 3๊ฐœ
4. ์ถ”๊ฐ€๋กœ ํ™•์ธํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ ์งˆ๋ฌธ 5๊ฐœ

7. ๋ฐ”๋กœ ์‹คํ–‰ํ•ด๋ณผ ์‹ค๋ฌดํ˜• SQL ๋ฏธ์…˜

์•„๋ž˜ SQL์—์„œ PROJECT_ID๋Š” ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ ID๋กœ ๋ฐ”๊ฟ” ์‹คํ–‰ํ•˜์„ธ์š”.

๋ฏธ์…˜ 1. ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ทœ๋ชจ ํ™•์ธํ•˜๊ธฐ

SELECT
  COUNT(*) AS row_count,
  COUNT(DISTINCT `Order ID`) AS order_count,
  COUNT(DISTINCT `Customer ID`) AS customer_count
FROM `PROJECT_ID.chapter1.superstore`;

GPT ํ•ด์„ ํ”„๋กฌํ”„ํŠธ

์ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ๋ฐ์ดํ„ฐ ๊ทœ๋ชจ๋ฅผ ์–ด๋–ป๊ฒŒ ์ดํ•ดํ•˜๋ฉด ๋˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ค˜.
row_count, order_count, customer_count์˜ ์ฐจ์ด๋„ ์•Œ๋ ค์ค˜.

๋ฏธ์…˜ 2. ์ „์ฒด ๋งค์ถœ, ์ด์ต, ์ด์ต๋ฅ  ๋ณด๊ธฐ

SELECT
  ROUND(SUM(Sales), 2) AS total_sales,
  ROUND(SUM(Profit), 2) AS total_profit,
  ROUND(SUM(Profit) / NULLIF(SUM(Sales), 0), 4) AS profit_margin
FROM `PROJECT_ID.chapter1.superstore`;

์‹ค๋ฌด ํฌ์ธํŠธ

๋งค์ถœ๋งŒ ๋ณด๋ฉด ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋กœ์Šค๋งˆ์ผ€ํŒ…์—์„œ๋Š” ์„ฑ์žฅ๋ฅ , ๋งค์ถœ, ์ด์ต๋ฅ ์„ ํ•จ๊ป˜ ๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งค์ถœ์ด ์ปค์ ธ๋„ ์ด์ต์ด ์ค„๋ฉด ์บ ํŽ˜์ธ์ด๋‚˜ ํ• ์ธ ์ •์ฑ…์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋ฏธ์…˜ 3. ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์„ฑ๊ณผ ๋ณด๊ธฐ

SELECT
  Category,
  ROUND(SUM(Sales), 2) AS sales,
  ROUND(SUM(Profit), 2) AS profit,
  ROUND(SUM(Profit) / NULLIF(SUM(Sales), 0), 4) AS profit_margin
FROM `PROJECT_ID.chapter1.superstore`
GROUP BY Category
ORDER BY profit DESC;

GPT ํ•ด์„ ํ”„๋กฌํ”„ํŠธ

์•„๋ž˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋งค์ถœ, ์ด์ต, ์ด์ต๋ฅ  ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ 
๊ทธ๋กœ์Šค๋งˆ์ผ€ํ„ฐ ๊ด€์ ์—์„œ ์–ด๋–ค ์นดํ…Œ๊ณ ๋ฆฌ์— ์ง‘์ค‘ํ•ด์•ผ ํ• ์ง€ ์•Œ๋ ค์ค˜.

ํ•ด์„ ๊ธฐ์ค€:
- ๋งค์ถœ์ด ํฐ ์นดํ…Œ๊ณ ๋ฆฌ
- ์ด์ต์ด ํฐ ์นดํ…Œ๊ณ ๋ฆฌ
- ๋งค์ถœ์€ ํฐ๋ฐ ์ด์ต๋ฅ ์ด ๋‚ฎ์€ ์นดํ…Œ๊ณ ๋ฆฌ
- ์ถ”๊ฐ€๋กœ ํ™•์ธํ•ด์•ผ ํ•  ์›์ธ

๋ฏธ์…˜ 4. ์„œ๋ธŒ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์†์‹ค ๊ตฌ๊ฐ„ ์ฐพ๊ธฐ

SELECT
  Category,
  `Sub-Category`,
  ROUND(SUM(Sales), 2) AS sales,
  ROUND(SUM(Profit), 2) AS profit,
  ROUND(SUM(Profit) / NULLIF(SUM(Sales), 0), 4) AS profit_margin
FROM `PROJECT_ID.chapter1.superstore`
GROUP BY Category, `Sub-Category`
ORDER BY profit ASC
LIMIT 10;

์‹ค๋ฌด ํฌ์ธํŠธ

์ด ์ฟผ๋ฆฌ๋Š” โ€œ๋ฌด์—‡์ด ๋ˆ์„ ๋ฒŒ๊ณ  ์žˆ๋Š”๊ฐ€?โ€๋ณด๋‹ค โ€œ๋ฌด์—‡์ด ๋ˆ์„ ์žƒ๊ณ  ์žˆ๋Š”๊ฐ€?โ€๋ฅผ ๋จผ์ € ๋ด…๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์„ฑ์žฅ ๊ธฐํšŒ๋งŒํผ์ด๋‚˜ ์†์‹ค์„ ์ค„์ด๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


๋ฏธ์…˜ 5. ์ง€์—ญ๋ณ„ ์„ฑ๊ณผ ๋ณด๊ธฐ

SELECT
  Region,
  ROUND(SUM(Sales), 2) AS sales,
  ROUND(SUM(Profit), 2) AS profit,
  ROUND(SUM(Profit) / NULLIF(SUM(Sales), 0), 4) AS profit_margin
FROM `PROJECT_ID.chapter1.superstore`
GROUP BY Region
ORDER BY profit DESC;

GPT ํ•ด์„ ํ”„๋กฌํ”„ํŠธ

์ด ์ง€์—ญ๋ณ„ ์„ฑ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ 
์–ด๋А ์ง€์—ญ์„ ๋” ํ‚ค์›Œ์•ผ ํ•˜๊ณ , ์–ด๋А ์ง€์—ญ์€ ์›์ธ ๋ถ„์„์ด ํ•„์š”ํ•œ์ง€ ์•Œ๋ ค์ค˜.
๋งˆ์ผ€ํŒ… ์˜ˆ์‚ฐ ๋ฐฐ๋ถ„ ๊ด€์ ์œผ๋กœ ์„ค๋ช…ํ•ด์ค˜.

๋ฏธ์…˜ 6. ํ• ์ธ์œจ๊ณผ ์ด์ต์˜ ๊ด€๊ณ„ ๋ณด๊ธฐ

SELECT
  Discount,
  COUNT(*) AS row_count,
  ROUND(SUM(Sales), 2) AS sales,
  ROUND(SUM(Profit), 2) AS profit,
  ROUND(SUM(Profit) / NULLIF(SUM(Sales), 0), 4) AS profit_margin
FROM `PROJECT_ID.chapter1.superstore`
GROUP BY Discount
ORDER BY Discount;

์‹ค๋ฌด ํฌ์ธํŠธ

ํ• ์ธ์€ ๋งค์ถœ์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด์ต์„ ๋ง์น  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž๋Š” โ€œํ• ์ธ = ์ข‹์€ ๊ฒƒโ€์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ, ๊ทธ๋กœ์Šค๋งˆ์ผ€ํ„ฐ๋Š” ํ• ์ธ์œจ๋ณ„ ์ด์ต๋ฅ ์„ ๋ฐ˜๋“œ์‹œ ๋ด…๋‹ˆ๋‹ค.


๋ฏธ์…˜ 7. ์›”๋ณ„ ๋งค์ถœ ์ถ”์ด ๋ณด๊ธฐ

์•„๋ž˜ ์ฟผ๋ฆฌ๋Š” Order Date๊ฐ€ DATE ํƒ€์ž…์œผ๋กœ ์ž˜ ์ธ์‹๋˜์—ˆ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT
  FORMAT_DATE('%Y-%m', `Order Date`) AS order_month,
  ROUND(SUM(Sales), 2) AS sales,
  ROUND(SUM(Profit), 2) AS profit
FROM `PROJECT_ID.chapter1.superstore`
GROUP BY order_month
ORDER BY order_month;

๋งŒ์•ฝ ๋‚ ์งœ ํƒ€์ž… ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด, GPT์—๊ฒŒ ์•„๋ž˜์ฒ˜๋Ÿผ ์š”์ฒญํ•˜์„ธ์š”.

BigQuery์—์„œ Order Date ์ปฌ๋Ÿผ ๋•Œ๋ฌธ์— FORMAT_DATE ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์–ด.
Order Date๊ฐ€ ๋ฌธ์ž์—ด์ผ ์ˆ˜๋„ ์žˆ์–ด.
CSV ๋‚ ์งœ ํ˜•์‹์€ ์˜ˆ๋ฅผ ๋“ค์–ด 11/8/2016 ๊ฐ™์€ ํ˜•ํƒœ์•ผ.
BigQuery Standard SQL๋กœ ๋‚ ์งœ๋ฅผ ํŒŒ์‹ฑํ•ด์„œ ์›”๋ณ„ ๋งค์ถœ์„ ๋ณด๋Š” ์ฟผ๋ฆฌ๋กœ ๊ณ ์ณ์ค˜.

์ฐธ๊ณ ๋กœ ๋ฌธ์ž์—ด ๋‚ ์งœ์ผ ๋•Œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ”๊ฟ”์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT
  FORMAT_DATE('%Y-%m', PARSE_DATE('%m/%d/%Y', `Order Date`)) AS order_month,
  ROUND(SUM(Sales), 2) AS sales,
  ROUND(SUM(Profit), 2) AS profit
FROM `PROJECT_ID.chapter1.superstore`
GROUP BY order_month
ORDER BY order_month;

8. ๊ฒฐ๊ณผ ํ•ด์„์€ ์ด 4๋‹จ๊ณ„๋กœ ์ •๋ฆฌํ•˜์„ธ์š”

์‹ค๋ฌด์—์„œ๋Š” SQL์„ ์‹คํ–‰ํ•œ ๊ฒƒ๋ณด๋‹ค ๊ฒฐ๊ณผ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งํ•˜๋А๋ƒ๊ฐ€ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

1๋‹จ๊ณ„. Fact โ€” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ์‹ค

์˜ˆ: Furniture ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ๋งค์ถœ์€ ํฌ์ง€๋งŒ ์ด์ต๋ฅ ์ด ๋‚ฎ๋‹ค.

2๋‹จ๊ณ„. Why โ€” ์™œ ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”๊ฐ€

์˜ˆ: ํŠน์ • ์„œ๋ธŒ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ํ• ์ธ์œจ์ด ๋†’๊ฑฐ๋‚˜ ๋ฐฐ์†ก ๋น„์šฉ์ด ์ปค์„œ ์ด์ต์ด ๋‚ฎ์•„์กŒ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

3๋‹จ๊ณ„. Action โ€” ๊ทธ๋ž˜์„œ ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ๊ฐ€

์˜ˆ: ์ด์ต๋ฅ ์ด ๋‚ฎ์€ ์„œ๋ธŒ์นดํ…Œ๊ณ ๋ฆฌ์˜ ํ• ์ธ ์ •์ฑ…์„ ์žฌ๊ฒ€ํ† ํ•˜๊ณ , ๊ณ ๋งˆ์ง„ ์ƒํ’ˆ๊ตฐ ์ค‘์‹ฌ์œผ๋กœ ์บ ํŽ˜์ธ์„ ์žฌํŽธํ•œ๋‹ค.

4๋‹จ๊ณ„. Next Question โ€” ๋‹ค์Œ์— ๋ฌด์—‡์„ ํ™•์ธํ•  ๊ฒƒ์ธ๊ฐ€

์˜ˆ: ํ• ์ธ์œจ ๊ตฌ๊ฐ„๋ณ„ ์ด์ต๋ฅ ์„ ๋ณด๊ณ , ์†์‹ค์ด ๋ฐœ์ƒํ•˜๋Š” ํ• ์ธ ๊ธฐ์ค€์„ ์„ ์ฐพ๋Š”๋‹ค.


10. ์ดˆ๋ณด์ž๊ฐ€ ์ž์ฃผ ๋ง‰ํžˆ๋Š” ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ๋ฒ•

๋ฌธ์ œ 1. ํ”„๋กœ์ ํŠธ ID๊ฐ€ ์ฑ…์ด๋‚˜ ์˜ˆ์‹œ์™€ ๋‹ฌ๋ผ์š”

์ •์ƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ID๋Š” ๊ณ„์ •๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ์˜ dataanalysis-449703 ๊ฐ™์€ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์“ฐ์ง€ ๋ง๊ณ , ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ ID๋กœ ๋ฐ”๊พธ์„ธ์š”.

FROM `๋‚ดํ”„๋กœ์ ํŠธID.chapter1.superstore`

๋ฌธ์ œ 2. Table not found ์—๋Ÿฌ๊ฐ€ ๋‚˜์š”

์•„๋ž˜๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

  • ํ”„๋กœ์ ํŠธ ID๊ฐ€ ์ •ํ™•ํ•œ๊ฐ€?
  • ๋ฐ์ดํ„ฐ์…‹ ์ด๋ฆ„์ด chapter1์ธ๊ฐ€?
  • ํ…Œ์ด๋ธ” ์ด๋ฆ„์ด superstore์ธ๊ฐ€?
  • ํ…Œ์ด๋ธ” ๊ฒฝ๋กœ ์ „์ฒด๋ฅผ ๋ฐฑํ‹ฑ์œผ๋กœ ๊ฐ์ŒŒ๋Š”๊ฐ€?

์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹:

FROM `PROJECT_ID.chapter1.superstore`

๋ฌธ์ œ 3. ์ปฌ๋Ÿผ๋ช… ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋‚˜์š”

Order ID, Sub-Category, Customer ID์ฒ˜๋Ÿผ ๊ณต๋ฐฑ์ด๋‚˜ ํ•˜์ดํ”ˆ์ด ์žˆ๋Š” ์ปฌ๋Ÿผ๋ช…์€ ๋ฐฑํ‹ฑ์œผ๋กœ ๊ฐ์‹ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

SELECT `Order ID`, `Sub-Category`
FROM `PROJECT_ID.chapter1.superstore`;

๋ฌธ์ œ 4. ๋‚ ์งœ ํ•จ์ˆ˜์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜์š”

CSV ์—…๋กœ๋“œ ์‹œ ๋‚ ์งœ๊ฐ€ DATE๊ฐ€ ์•„๋‹ˆ๋ผ STRING์œผ๋กœ ์žกํ˜”์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GPT์—๊ฒŒ ์ปฌ๋Ÿผ ํƒ€์ž…๊ณผ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ™์ด ์ฃผ๊ณ  ์ˆ˜์ • ์š”์ฒญํ•˜์„ธ์š”.

Order Date๊ฐ€ STRING์œผ๋กœ ์žกํžŒ ๊ฒƒ ๊ฐ™์•„.
๊ฐ’ ์˜ˆ์‹œ๋Š” 11/8/2016์ด์•ผ.
BigQuery์—์„œ ์›”๋ณ„ ์ง‘๊ณ„๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก PARSE_DATE๋ฅผ ์จ์„œ ์ฟผ๋ฆฌ๋ฅผ ๊ณ ์ณ์ค˜.

๋ฌธ์ œ 5. GPT๊ฐ€ ๋งŒ๋“  SQL์ด ๋ฐ”๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์•„์š”

์ •์ƒ์ž…๋‹ˆ๋‹ค. GPT๋Š” ์ดˆ์•ˆ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์‹คํ–‰ ํ›„ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค์‹œ GPT์—๊ฒŒ ์ฃผ๋ฉด์„œ ๊ณ ์ณ๊ฐ€๋Š” ๋ฐฉ์‹์ด ์‹ค๋ฌด์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.


๋ถ€๋ก. ์ฐธ๊ณ  ๋งํฌ


๋งˆ์ง€๋ง‰ ๋ฉ”์‹œ์ง€

๋ฐ์ดํ„ฐ ๋ถ„์„์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‹œ์ž‘ํ•˜๋Š” ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” โ€œ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ ธ๋‹คโ€, โ€œ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ–ˆ๋‹คโ€, โ€œ๊ฒฐ๊ณผ๋ฅผ ํ•ด์„ํ–ˆ๋‹คโ€๋Š” ์ž‘์€ ์„ฑ๊ณต ๊ฒฝํ—˜์ด ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

GPT๋ฅผ ์ž˜ ์“ฐ๋Š” ์‚ฌ๋žŒ์€ ์งˆ๋ฌธ์„ ์ž˜๊ฒŒ ์ชผ๊ฐญ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ฒซ ์งˆ๋ฌธ๋งŒ ๋˜์ ธ๋ณด์„ธ์š”.

์ด ๋ฐ์ดํ„ฐ์—์„œ ๋งค์ถœ์€ ๋†’์€๋ฐ ์ด์ต๋ฅ ์ด ๋‚ฎ์€ ๊ณณ์€ ์–ด๋””์•ผ?

๊ทธ ์งˆ๋ฌธ ํ•˜๋‚˜๊ฐ€ ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค.