Gemini์˜ ๋„์›€์„ ๋ฐ›์•„ ์ฟผ๋ฆฌ ์ž‘์„ฑํ•˜๊ธฐ

์ด ๋ฌธ์„œ์—์„œ๋Š” BigQuery์˜ Gemini์—์„œ AI ๊ธฐ๋ฐ˜ ์ง€์›์„ ์‚ฌ์šฉํ•˜์—ฌ SQL ์ฟผ๋ฆฌ์™€ Python ์ฝ”๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. BigQuery์˜ Gemini๋Š” ์ฟผ๋ฆฌ์™€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„ค๋ช…ํ•˜๋ฉฐ, ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ ์ฟผ๋ฆฌ์™€ ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜๊ณ , ์ฝ”๋“œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Google Cloud ์ฝ˜์†”์—์„œ ์ด ํƒœ์Šคํฌ์— ๋Œ€ํ•œ ๋‹จ๊ณ„๋ณ„ ์•ˆ๋‚ด๋ฅผ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋‘˜๋Ÿฌ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋‘˜๋Ÿฌ๋ณด๊ธฐ


Google Cloud ๋ฅผ ์œ„ํ•œ Gemini๋Š” ์‚ฌ์šฉ์ž์˜ ๋ช…์‹œ์  ๊ถŒํ•œ ๋ถ€์—ฌ ์—†์ด ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ๋‚˜ ํ•ด๋‹น ์‘๋‹ต์„ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Google์—์„œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Google Cloud ๋ฅผ ์œ„ํ•œ Gemini์—์„œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

BigQuery์—์„œ๋Š” Gemini์— ์˜์–ด ํ”„๋กฌํ”„ํŠธ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” SQL ์ฟผ๋ฆฌ์™€ BigQuery์˜ Colab Enterprise ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€, ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž, ๋ฐ์ดํ„ฐ ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” BigQuery Studio ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ Python ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜์—ฌ BigQuery ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

  1. Google Cloud ํ”„๋กœ์ ํŠธ์— BigQuery์˜ Gemini๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๋ฆฌ์ž๊ฐ€ ์ด ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋‚˜๋จธ์ง€ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•  ๋•Œ๊นŒ์ง€ BigQuery์˜ Gemini ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ ์ค‘์ง€๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Gemini Cloud Assist๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Gemini Cloud Assist ์ฐฝ์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด Gemini Cloud Assist ์„ค์ •์˜ ๋‹จ๊ณ„๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. Gemini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BigQuery์˜ Colab Enterprise ๋…ธํŠธ๋ถ์—์„œ Python ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋ ค๋ฉด ํ”„๋กœ์ ํŠธ์— Colab Enterprise์˜ Gemini ์„ค์ •์˜ ๋‹จ๊ณ„๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  6. BigQuery ํˆด๋ฐ”์—์„œ pen_sparkGemini๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    BigQuery ํˆด๋ฐ”์˜ Gemini ๋ฒ„ํŠผ

  7. ๊ธฐ๋Šฅ ๋ชฉ๋ก์—์„œ ๋‹ค์Œ ๊ธฐ๋Šฅ์ด ์„ ํƒ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    • SQL ์ฟผ๋ฆฌ์˜ Gemini ๋ชฉ๋ก:

      • ์ž๋™ ์™„์„ฑ(ํ”„๋ฆฌ๋ทฐ). ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์— ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ Gemini๋Š” ํ˜„์žฌ ์ฟผ๋ฆฌ ์ปจํ…์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ๋…ผ๋ฆฌ์ ์ธ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ถ”์ฒœํ•˜๊ฑฐ๋‚˜ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์ž๋™ ์ƒ์„ฑ. BigQuery ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ์ž์—ฐ์–ด ์ฃผ์„์„ ์‚ฌ์šฉํ•˜์—ฌ BigQuery์˜ Gemini์— ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•ด SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      • SQL ์ƒ์„ฑ ๋„๊ตฌ. ๋„๊ตฌ์— ์ž์—ฐ์–ด ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๊ณ , ํ…Œ์ด๋ธ” ์†Œ์Šค๋ฅผ ์„ ํƒํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์„ค๋ช…. BigQuery์˜ Gemini์— ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ SQL ์ฟผ๋ฆฌ๋ฅผ ์ž์—ฐ์–ด๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Python ๋…ธํŠธ๋ถ์˜ Gemini ๋ชฉ๋ก:

      • ์ฝ”๋“œ ์™„์„ฑ(ํ”„๋ฆฌ๋ทฐ). Gemini๋Š” ๋…ธํŠธ๋ถ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆํ•œ ์ถ”์ฒœ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
      • ์ฝ”๋“œ ์ƒ์„ฑ. ์ž์—ฐ์–ด ๋ฌธ์ด๋‚˜ Python ์ฝ”๋“œ ์ƒ์„ฑ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์œผ๋กœ Gemini์— ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  8. ์ด ๋ฌธ์„œ์˜ ํƒœ์Šคํฌ๋ฅผ ์™„๋ฃŒํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ Identity and Access Management(IAM) ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ์—ญํ• 

Gemini ์–ด์‹œ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์–ป์œผ๋ ค๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Google Cloud๋ฅผ ์œ„ํ•œ Gemini ์‚ฌ์šฉ์ž(roles/cloudaicompanion.user) IAM ์—ญํ• ์„ ๋ถ€์—ฌํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์„ธ์š”. ์—ญํ•  ๋ถ€์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋กœ์ ํŠธ, ํด๋”, ์กฐ์ง์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ์‚ฌ์ „ ์ •์˜๋œ ์—ญํ• ์—๋Š” Gemini ์ง€์›์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ •ํ™•ํ•œ ๊ถŒํ•œ์„ ๋ณด๋ ค๋ฉด ํ•„์ˆ˜ ๊ถŒํ•œ ์„น์…˜์„ ํŽผ์น˜์„ธ์š”.

ํ•„์ˆ˜ ๊ถŒํ•œ

Gemini ์–ด์‹œ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • cloudaicompanion.entitlements.get
  • cloudaicompanion.instances.completeTask
  • SQL ์ฟผ๋ฆฌ ์„ค๋ช…: cloudaicompanion.companions.generateChat
  • SQL ๋˜๋Š” Python ์ฝ”๋“œ ์™„์„ฑ: cloudaicompanion.instances.completeCode
  • SQL ๋˜๋Š” Python ์ฝ”๋“œ ์ƒ์„ฑ: cloudaicompanion.instances.generateCode

์ปค์Šคํ…€ ์—ญํ• ์ด๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์ „ ์ •์˜๋œ ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

BigQuery์—์„œ IAM ์—ญํ•  ๋ฐ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ IAM ์†Œ๊ฐœ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

SQL ์ฟผ๋ฆฌ ์ƒ์„ฑ

๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด BigQuery์˜ Gemini์— ์ž์—ฐ์–ด ๋ฌธ์ด๋‚˜ ์งˆ๋ฌธ(ํ”„๋กฌํ”„ํŠธ๋ผ๊ณ ๋„ ํ•จ)์„ ์ œ๊ณตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์—†์ด ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ์ง€์‹์ด ๋งŽ์ง€ ์•Š๊ฑฐ๋‚˜ GoogleSQL ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹๋งŒ ์žˆ๋Š” ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•˜๋”๋ผ๋„ BigQuery์˜ Gemini๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” SQL์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL ์ƒ์„ฑ ๋„๊ตฌ ์‚ฌ์šฉ

SQL ์ƒ์„ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์—ฐ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๊ทผ์— ๋ณด๊ฑฐ๋‚˜ ์ฟผ๋ฆฌํ•œ ํ…Œ์ด๋ธ”์— ๊ด€ํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  SQL์„ ์ƒ์„ฑํ•  ํ…Œ์ด๋ธ”์„ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL ์ƒ์„ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ ์˜†์— ์žˆ๋Š” pen_spark SQL ์ƒ์„ฑ ๋„๊ตฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    BigQuery ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ SQL ์ƒ์„ฑ ๋„๊ตฌ ๋ฒ„ํŠผ

  3. Gemini๋กœ SQL ์ƒ์„ฑํ•˜๊ธฐ ๋Œ€ํ™”์ƒ์ž์— ์ตœ๊ทผ์— ๋ณด๊ฑฐ๋‚˜ ์ฟผ๋ฆฌํ•œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ž์—ฐ์–ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ๊ทผ์— bigquery-public-data.austin_bikeshare.bikeshare_trips ํ…Œ์ด๋ธ”์„ ๋ณธ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     Show me the duration and subscriber type for the ten longest trips.
    
  4. ์ƒ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ƒ์„ฑ๋˜๋Š” SQL ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    SELECT
        subscriber_type,
        duration_sec
      FROM
          `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
    ORDER BY
        duration_sec DESC
    LIMIT 10;
    
  5. ์ƒ์„ฑ๋œ SQL ์ฟผ๋ฆฌ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ๋‹ค์Œ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ์ƒ์„ฑ๋œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด ์‚ฝ์ž…์„ ํด๋ฆญํ•˜์—ฌ ๋ฌธ์„ ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹คํ–‰์„ ํด๋ฆญํ•˜์—ฌ ์ถ”์ฒœ SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ˆ˜์ •์„ ํด๋ฆญํ•œ ํ›„ ์ดˆ๊ธฐ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆ˜์ •ํ•œ ํ›„ ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”์ฒœ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์ปจํ…์ŠคํŠธ๋กœ ์‚ฌ์šฉ๋œ ํ…Œ์ด๋ธ” ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ” ์†Œ์Šค ์ˆ˜์ •์„ ํด๋ฆญํ•˜๊ณ  ์ ์ ˆํ•œ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•œ ํ›„ ์ ์šฉ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    • ์ƒ์„ฑ๋œ ์ฟผ๋ฆฌ์˜ ์ž์—ฐ์–ด ์š”์•ฝ์„ ๋ณด๋ ค๋ฉด ์ฟผ๋ฆฌ ์š”์•ฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”์ฒœ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๋ ค๋ฉด ๋ฏธ์„ธ ์กฐ์ • ํ•„๋“œ์— ๋ฏธ์„ธ ์กฐ์ •์‚ฌํ•ญ์„ ์ž…๋ ฅํ•œ ํ›„ ๋ฏธ์„ธ ์กฐ์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋ ค๋ฉด limit to 1000์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋น„๊ตํ•˜๋ ค๋ฉด ์ฐจ์ด์  ํ‘œ์‹œ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”์ฒœ ์ฟผ๋ฆฌ๋ฅผ ๋‹ซ์œผ๋ ค๋ฉด SQL ์ƒ์„ฑ ๋„๊ตฌ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

SQL ์ƒ์„ฑ ๋„๊ตฌ ์‚ฌ์šฉ ์ค‘์ง€

SQL ์ƒ์„ฑ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด Gemini ์ฟผ๋ฆฌ ์–ด์‹œ์Šคํ„ดํŠธ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฃผ์„์—์„œ SQL ์ƒ์„ฑ

์ฃผ์„์— ์›ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜์—ฌ ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ SQL์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ SQL ์ฟผ๋ฆฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ์ตœ๊ทผ์— ๋ณด๊ฑฐ๋‚˜ ์ฟผ๋ฆฌํ•œ ํ…Œ์ด๋ธ”์— ๊ด€ํ•œ SQL ์ฃผ์„์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ๊ทผ์— bigquery-public-data.austin_bikeshare.bikeshare_trips ํ…Œ์ด๋ธ”์„ ๋ณธ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์„์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    # Show me the duration and subscriber type for the ten longest trips.
    
  4. Enter ํ‚ค(macOS์—์„œ๋Š” Return ํ‚ค)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    ์ถ”์ฒœ SQL ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    # Show me the duration and subscriber type for the ten longest trips
    
    SELECT
      duration_sec,
      subscriber_type
      AVG(duration_minutes) AS average_trip_length
    FROM
      `bigquery-public-data.austin_bikeshare.bikeshare_trips`
    ORDER BY
      duration_sec
    LIMIT 10;
    
  5. ์ถ”์ฒœ๋œ ๋‚ด์šฉ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Tab ํ‚ค๋ฅผ ๋ˆ„๋ฅด์„ธ์š”.

Gemini Cloud Assist๋กœ SQL ์ƒ์„ฑ

Google Cloud ์ฝ˜์†”์˜ Cloud Assist ํŒจ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ BigQuery์—์„œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gemini Cloud Assist ์ฑ„ํŒ…์„ ์‚ฌ์šฉํ•˜์—ฌ SQL์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋จผ์ € Gemini Cloud Assist๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gemini Cloud Assist ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ SQL ์ฟผ๋ฆฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ SQL ์ฟผ๋ฆฌ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  3. In the Google Cloud toolbar, click spark Open or close Gemini AI chat to open Gemini Cloud Assist chat.

    BigQuery ํˆด๋ฐ”์˜ Gemini Cloud Assist ๋ฒ„ํŠผ

  4. ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ํ•„๋“œ์— SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Generate a SQL query to show me the duration and subscriber type for the ten longest trips.
    
  5. ํ”„๋กฌํ”„ํŠธ ์ „์†ก์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋‹ต์—๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ SQL ์ฟผ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    SELECT
         subscriber_type,
         duration_sec
     FROM
         `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
     ORDER BY
         duration_sec DESC
     LIMIT 10;
     ```
    
  6. ์ƒ์„ฑ๋œ SQL ์ฟผ๋ฆฌ๋ฅผ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

  7. ์ƒ์„ฑ๋œ SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์— ๋ถ™์—ฌ๋„ฃ์€ ๋‹ค์Œ ์‹คํ–‰์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

SQL ์ƒ์„ฑ ํŒ

๋‹ค์Œ ํŒ์€ BigQuery์˜ Gemini์—์„œ ์ œ๊ณตํ•˜๋Š” ์ถ”์ฒœ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉํ•  ํ…Œ์ด๋ธ”์„ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•˜๋ ค๋ฉด ์ •๊ทœํ™”๋œ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ๋ฐฑํ‹ฑ(`)์œผ๋กœ ๋ฌถ์–ด ํฌํ•จํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: `PROJECT.DATASET.TABLE`).
  • ์—ด ์ด๋ฆ„ ๋˜๋Š” ์‹œ๋งจํ‹ฑ ๊ด€๊ณ„๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๊ฒฝ์šฐ ํ”„๋กฌํ”„ํŠธ์— ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ Gemini๊ฐ€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ๋‹ต๋ณ€์„ ์ œ๊ณตํ•˜๋„๋ก ์•ˆ๋‚ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ์„ฑ๋œ ์ฟผ๋ฆฌ๊ฐ€ ์—ด ์ด๋ฆ„์„ ์ฐธ์กฐํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์—ด ์ด๋ฆ„๊ณผ ์›ํ•˜๋Š” ๋‹ต๋ณ€๊ณผ์˜ ๊ด€๋ จ์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ‰์ƒ ๊ฐ€์น˜ ๋˜๋Š” ์ด์ด์ต๊ณผ ๊ฐ™์ด ๋ณต์žกํ•œ ์šฉ์–ด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋‹ต๋ณ€์„ ์œ ๋„ํ•˜๋ ค๋ฉด ๊ฐœ๋… ๋ฐ ๋ฐ์ดํ„ฐ์™€์˜ ๊ด€๋ จ์„ฑ์„ ์„ค๋ช…ํ•˜์—ฌ SQL ์ƒ์„ฑ ๊ฒฐ๊ณผ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ์ฃผ์„์—์„œ SQL์„ ์ƒ์„ฑํ•  ๋•Œ ๊ฐ ์ค„ ์•ž์— # ๋ฌธ์ž๋ฅผ ๋ถ™์—ฌ ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์ณ ํ”„๋กฌํ”„ํŠธ ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ด ์„ค๋ช…์€ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. ์ •ํ™•์„ฑ์„ ๊ฐœ์„ ํ•˜๋ ค๋ฉด ์Šคํ‚ค๋งˆ์— ์—ด ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์—ด ์„ค๋ช…์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ '์Šคํ‚ค๋งˆ ์ง€์ •'์˜ ์—ด ์„ค๋ช…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

SQL ์ฟผ๋ฆฌ ์ž‘์„ฑ

SQL ์ž‘์„ฑ์€ ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ถ”์ฒœ์„ ์ œ๊ณตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ Gemini๋Š” ํ˜„์žฌ ์ฟผ๋ฆฌ์˜ ์ปจํ…์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ๋…ผ๋ฆฌ์ ์ธ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ถ”์ฒœํ•˜๊ฑฐ๋‚˜ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BigQuery์˜ Gemini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQL ์ž‘์„ฑ์„ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    SELECT
      subscriber_type
      , EXTRACT(HOUR FROM start_time) AS hour_of_day
      , AVG(duration_minutes) AS avg_trip_length
    FROM
      `bigquery-public-data.austin_bikeshare.bikeshare_trips`
    

    subscriber_type์ด ๊ทธ๋ฃนํ™”๋˜๊ฑฐ๋‚˜ ์ง‘๊ณ„๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•ด ๋„์›€์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

  3. subscriber_type์˜ ์ค„ ๋์—์„œ ์ŠคํŽ˜์ด์Šค๋ฐ”๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    ์ถ”์ฒœ๋œ ์ฟผ๋ฆฌ ์ƒ์„ธ๊ฒ€์ƒ‰์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ํ…์ŠคํŠธ๋กœ ๋๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    GROUP BY
      subscriber_type, hour_of_day;
    

    Enter ํ‚ค(macOS์—์„œ๋Š” Return ํ‚ค)๋ฅผ ๋ˆŒ๋Ÿฌ ์ถ”์ฒœ์„ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์ถ”์ฒœ์„ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด Tab ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์ถ”์ฒœ ํ…์ŠคํŠธ ์œ„์— ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋ฅผ ์˜ฌ๋ ค๋†“๊ณ  ๊ฐ ์ถ”์ฒœ ๋Œ€์•ˆ์„ ํด๋ฆญํ•˜์„ธ์š”. ์ถ”์ฒœ ํ•ญ๋ชฉ์„ ๋‹ซ์œผ๋ ค๋ฉด Esc ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๊ณ„์† ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    SQL ์ถ”์ฒœ ํƒ์ƒ‰ ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค.

SQL ์ฟผ๋ฆฌ ์„ค๋ช…

SQL ์ฟผ๋ฆฌ๋ฅผ ์ž์—ฐ์–ด๋กœ ์„ค๋ช…ํ•˜๋„๋ก BigQuery์˜ Gemini์— ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค๋ช…์€ ์ฟผ๋ฆฌ์˜ ๊ธธ์ด ๋˜๋Š” ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ๋ฌธ๋ฒ•, ๊ธฐ๋ณธ ์Šคํ‚ค๋งˆ, ๋น„์ฆˆ๋‹ˆ์Šค ์ปจํ…์ŠคํŠธ๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

SQL ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ์„ค๋ช…์ด ํ•„์š”ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์—ด๊ฑฐ๋‚˜ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

  3. BigQuery์˜ Gemini์—์„œ ์„ค๋ช…ํ•  ์ฟผ๋ฆฌ๋ฅผ ๊ฐ•์กฐ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  4. astrophotography_mode Gemini๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ ์ด ์ฟผ๋ฆฌ ์„ค๋ช…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    BigQuery ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์—์„œ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ ์ด ์ฟผ๋ฆฌ ์„ค๋ช… ์•„์ด์ฝ˜ ๋ฐ ํ…์ŠคํŠธ

    SQL ์„ค๋ช…์ด Cloud ํŒจ๋„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Python ์ฝ”๋“œ ์ƒ์„ฑ

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

Python ์ฝ”๋“œ ์ƒ์„ฑ ๋„๊ตฌ ์‚ฌ์šฉ

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” BigQuery ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ ์„ธํŠธ bigquery-public-data.ml_datasets.penguins์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ ํƒญ ํ‘œ์‹œ์ค„์—์„œ SQL ์ฟผ๋ฆฌ ์˜†์— ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋…ธํŠธ๋ถ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    bigquery-public-data.ml_datasets.penguins ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์…€์ด ํฌํ•จ๋œ ์ƒˆ ๋…ธํŠธ๋ถ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

  3. ์ƒˆ ์ฝ”๋“œ ์…€์„ ์‚ฝ์ž…ํ•˜๋ ค๋ฉด ํˆด๋ฐ”์—์„œ ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ฝ”๋“œ ์…€์—๋Š” ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ AI๋กœ ์ƒ์„ฑํ•˜์„ธ์š” ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์ƒˆ ์ฝ”๋“œ ์…€์—์„œ ์ƒ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์ƒ์„ฑ ํŽธ์ง‘๊ธฐ์—์„œ ๋‹ค์Œ ์ž์—ฐ์–ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    Using bigquery magics, query the `bigquery-public-data.ml_datasets.penguins` table
    
  6. Enter ํ‚ค(macOS์—์„œ๋Š” Return ํ‚ค)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    ์ถ”์ฒœ Python ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    %%bigquery
    SELECT *
    FROM `bigquery-public-data.ml_datasets.penguins`
    LIMIT 10
    
  7. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์…€ ์‹คํ–‰์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

Gemini Cloud Assist๋กœ Python ์ฝ”๋“œ ์ƒ์„ฑ

Google Cloud ์ฝ˜์†”์—์„œ Gemini Cloud Assist๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BigQuery์—์„œ Python ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gemini Cloud Assist๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋จผ์ € Gemini Cloud Assist๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Gemini Cloud Assist ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ ํƒญ ํ‘œ์‹œ์ค„์—์„œ SQL ์ฟผ๋ฆฌ ์˜†์— ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋…ธํŠธ๋ถ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. In the Google Cloud toolbar, click spark Open or close Gemini AI chat to open Gemini Cloud Assist chat.

    BigQuery ํˆด๋ฐ”์˜ Gemini ๋ฒ„ํŠผ

  4. ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ํ•„๋“œ์— ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ Python ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Generate python code to query the `bigquery-public-data.ml_datasets.penguins`
    table using bigquery magics
    
    
  5. ํ”„๋กฌํ”„ํŠธ ์ „์†ก()์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. Gemini๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ Python ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    %%bigquery
    SELECT *
    FROM `bigquery-public-data.ml_datasets.penguins`
    LIMIT 10
    
  6. ์ƒ์„ฑ๋œ Python ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

  7. Python ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์— ๋ถ™์—ฌ๋„ฃ์€ ํ›„ ์‹คํ–‰์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

BigQuery DataFrames ์ฝ”๋“œ ์ƒ์„ฑ

BigQuery์˜ Gemini๋กœ BigQuery DataFrames ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์ฝ”๋“œ์—์„œ BigQuery DataFrames๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Gemini์— ์š”์ฒญํ•˜๋ ค๋ฉด ํ”„๋กฌํ”„ํŠธ์—์„œ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กฌํ”„ํŠธ๋ฅผ 'bigframes ์‚ฌ์šฉ' ๋˜๋Š” 'BigQuery DataFrames ํ™œ์šฉ'์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BigQuery DataFrames๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • bigframes.pandas: ๋ถ„์„์„ ์œ„ํ•œ pandas ํ˜ธํ™˜ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • bigframes.ml: ๋จธ์‹ ๋Ÿฌ๋‹(ML)์„ ์œ„ํ•œ scikit-learn๊ณผ ๊ฐ™์€ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Gemini ์ฝ”๋“œ ์ƒ์„ฑ์€ bigframes.pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

BigQuery DataFrames ๋ฐ BigQuery DataFrames๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด BigQuery DataFrames ๊ถŒํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. BigQuery DataFrames๋Š” ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. pip install --upgrade bigframes๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” BigQuery ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ ์„ธํŠธ bigquery-public-data.ml_datasets.penguins์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ ํƒญ ํ‘œ์‹œ์ค„์—์„œ SQL ์ฟผ๋ฆฌ ์˜†์— ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋…ธํŠธ๋ถ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ƒˆ ๋…ธํŠธ๋ถ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

  3. ์ƒˆ ์ฝ”๋“œ ์…€์„ ์‚ฝ์ž…ํ•˜๋ ค๋ฉด ํˆด๋ฐ”์—์„œ ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ƒˆ ์ฝ”๋“œ ์…€์—๋Š” ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ AI๋กœ ์ƒ์„ฑํ•˜์„ธ์š” ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์ฝ”๋“œ ์…€์—์„œ ์ƒ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์ƒ์„ฑ ํŽธ์ง‘๊ธฐ์—์„œ ๋‹ค์Œ ์ž์—ฐ์–ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    Read the penguins table from the BigQuery public data using bigframes
    
  6. Enter ํ‚ค(macOS์—์„œ๋Š” Return ํ‚ค)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    ์ถ”์ฒœ Python ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    import bigframes.pandas as bpd
    
    # Read the penguins table from the BigQuery public data using bigframes
    result = bpd.read_gbd("bigquery-public-data.ml_datasets.penguins")
    
  7. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์…€ ์‹คํ–‰์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  8. ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๋ ค๋ฉด ํˆด๋ฐ”์—์„œ ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ์ฝ”๋“œ ์…€์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

  9. ์ƒˆ ์…€์—์„œ peek() ๋ฉ”์„œ๋“œ(์˜ˆ: result.peek())๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์…€ ์‹คํ–‰์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ–‰ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ „์ฒด Python ์ฝ”๋“œ

Python ์ฝ”๋“œ ์™„์„ฑ์€ ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ถ”์ฒœ์„ ์ œ๊ณตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ BigQuery์˜ Gemini๋Š” ํ˜„์žฌ ์ฝ”๋“œ ์ปจํ…์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ๋…ผ๋ฆฌ์ ์ธ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ œ์•ˆํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BigQuery์˜ Gemini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Python ์ฝ”๋“œ ์™„์„ฑ์„ ์‚ฌ์šฉํ•ด ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ์ฟผ๋ฆฌ ํŽธ์ง‘๊ธฐ์˜ ํƒญ ํ‘œ์‹œ์ค„์—์„œ SQL ์ฟผ๋ฆฌ ์˜†์— ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋…ธํŠธ๋ถ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    bigquery-public-data.ml_datasets.penguins ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์…€์ด ํฌํ•จ๋œ ์ƒˆ ๋…ธํŠธ๋ถ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

  3. ํŽธ์ง‘๊ธฐ์—์„œ Python ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด %%bigquery์ž…๋‹ˆ๋‹ค. BigQuery์˜ Gemini๋Š” ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ ์ฝ”๋“œ ์ธ๋ผ์ธ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

  4. ์ถ”์ฒœ๋œ ๋‚ด์šฉ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Tab ํ‚ค๋ฅผ ๋ˆ„๋ฅด์„ธ์š”.

Python ์ฝ”๋“œ ์„ค๋ช…

BigQuery์˜ Gemini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Colab Enterprise ๋…ธํŠธ๋ถ์˜ Python ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค๋ช…์„ ๋ฐ›์€ ํ›„ ์ฝ”๋“œ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๋„๋ก ํ”„๋กฌํ”„ํŠธ ๋Œ€ํ™”์ƒ์ž์—์„œ ๋” ๋งŽ์€ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ธํŠธ๋ถ์˜ Python ์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ํƒ์ƒ‰๊ธฐ ์ฐฝ์—์„œ ํ”„๋กœ์ ํŠธ์™€ Notebooks ํด๋”๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

  3. ์—ด๋ ค๋Š” ๋…ธํŠธ๋ถ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ดํ•ดํ•˜๋ ค๋Š” Python ์…€์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  5. spark Gemini๋ฅผ ํด๋ฆญํ•œ ํ›„ ์ฝ”๋“œ ์„ค๋ช…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ฝ”๋“œ ์„ค๋ช…์ด ์…€ ์˜†์˜ ํŒจ๋„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  6. ์„ ํƒ์‚ฌํ•ญ: ์ฝ”๋“œ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๋ ค๋ฉด ์—ฌ๊ธฐ์— ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ํ•„๋“œ์— ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

Python ์˜ค๋ฅ˜ ์ˆ˜์ • ๋ฐ ์„ค๋ช…

BigQuery์˜ Gemini๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Colab Enterprise ๋…ธํŠธ๋ถ์˜ Python ์ฝ”๋“œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gemini ์–ด์‹œ์Šคํ„ด์Šค๋กœ ์ฝ”๋“œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. ํƒ์ƒ‰๊ธฐ ์ฐฝ์—์„œ ํ”„๋กœ์ ํŠธ์™€ Notebooks ํด๋”๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

  3. ์—ด๋ ค๋Š” ๋…ธํŠธ๋ถ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๋…ธํŠธ๋ถ์˜ ์ฝ”๋“œ ์…€์— ์˜ค๋ฅ˜๊ฐ€ ํฌํ•จ๋œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•œ ํ›„ ์…€์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋ˆ„๋ฝ๋œ print(1์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฝ”๋“œ ์…€์ด ์‹คํ–‰๋˜๋ฉด ๋…ธํŠธ๋ถ์˜ ์ฝ”๋“œ ์…€ ์•„๋ž˜์— ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. Python ๋…ธํŠธ๋ถ์—์„œ Gemini๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ–ˆ๊ณ  Gemini์— ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์„ค๋ช…ํ•˜๋Š” ์ถ”์ฒœ์ด ์žˆ์œผ๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    • Python ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์˜ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ์ˆ˜์ • ์˜ต์…˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
    • ๋‹ค๋ฅธ ๋ชจ๋“  ์œ ํ˜•์˜ ์˜ค๋ฅ˜์˜ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ์„ค๋ช… ์˜ต์…˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  5. ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. ์˜ค๋ฅ˜ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      Gemini์—์„œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

    2. ์ถ”์ฒœ์„ ํ‰๊ฐ€ํ•œ ํ›„ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      • ์ถ”์ฒœ์„ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด check ์ œ์•ˆ ์ˆ˜๋ฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
      • ์ถ”์ฒœ์„ ๊ฑฐ๋ถ€ํ•˜๋ ค๋ฉด close ์ œ์•ˆ ๊ฑฐ๋ถ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  6. ๋‹ค๋ฅธ ๋ชจ๋“  ์œ ํ˜•์˜ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. ์˜ค๋ฅ˜ ์„ค๋ช…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      ์˜ค๋ฅ˜๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ œ์•ˆํ•˜๋Š” ํŒจ๋„์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

    2. ์„ ํƒ์‚ฌํ•ญ: ์˜ค๋ฅ˜๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๋ ค๋ฉด ์—ฌ๊ธฐ์— ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ ํ•„๋“œ์— ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    3. ์ œ์•ˆ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด library_add ์ฝ”๋“œ ์…€ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

PySpark ์ฝ”๋“œ ์ƒ์„ฑ

Gemini Code Assist์— ๋…ธํŠธ๋ถ์—์„œ PySpark ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gemini Code Assist๋Š” ๊ด€๋ จ BigQuery ๋ฐ Dataproc Metastore ํ…Œ์ด๋ธ”๊ณผ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ง€์‹๊ณผ ํ•จ๊ป˜ Gemini Code Assist๋Š” ํ• ๋ฃจ์‹œ๋„ค์ด์…˜์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์กฐ์ธ ํ‚ค์™€ ์—ด ์œ ํ˜•์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๋…ธํŠธ๋ถ์—์„œ Gemini Code Assist ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ํˆด๋ฐ”์—์„œ + ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ์ฝ”๋“œ ์…€์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ฝ”๋“œ ์…€์— Start coding or generate with AI๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. ์ƒ์„ฑ ํŽธ์ง‘๊ธฐ์—์„œ ์ž์—ฐ์–ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž…๋ ฅํ•œ ํ›„ enter ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ์— spark ๋˜๋Š” pyspark ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ƒ˜ํ”Œ ํ”„๋กฌํ”„ํŠธ:

    create a spark dataframe from order_items and filter to orders created in 2024
    

    ์ƒ˜ํ”Œ ์ถœ๋ ฅ:

    spark.read.format("bigquery").option("table", "sqlgen-testing.pysparkeval_ecommerce.order_items").load().filter("year(created_at) = 2024").createOrReplaceTempView("order_items")
    df = spark.sql("SELECT * FROM order_items")
    

Gemini Code Assist ์ฝ”๋“œ ์ƒ์„ฑ ๋„์›€๋ง

  • Gemini Code Assist๊ฐ€ ๊ด€๋ จ ํ…Œ์ด๋ธ”๊ณผ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜๋ ค๋ฉด Dataproc Metastore ์ธ์Šคํ„ด์Šค์— Data Catalog ๋™๊ธฐํ™”๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜์„ธ์š”.

  • ์‚ฌ์šฉ์ž ๊ณ„์ •์— Data Catalog ์ฟผ๋ฆฌ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด DataCatalog.Viewer ์—ญํ• ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

Gemini ์ฟผ๋ฆฌ ์–ด์‹œ์Šคํ„ดํŠธ ๊ธฐ๋Šฅ ์‚ฌ์šฉ ์ค‘์ง€

BigQuery์˜ Gemini์—์„œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. BigQuery ํˆด๋ฐ”์—์„œ pen_sparkGemini๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    BigQuery ํˆด๋ฐ”์˜ Gemini ๋ฒ„ํŠผ

  3. ๋ชฉ๋ก์—์„œ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋Š” ์ฟผ๋ฆฌ ์–ด์‹œ์Šคํ„ดํŠธ ๊ธฐ๋Šฅ์„ ์„ ํƒ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

BigQuery์˜ Gemini๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด BigQuery์˜ Gemini ์‚ฌ์šฉ ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Colab Enterprise์—์„œ Gemini ์‚ฌ์šฉ ์ค‘์ง€

Google Cloud ํ”„๋กœ์ ํŠธ์šฉ Colab Enterprise์—์„œ Gemini๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ Gemini for Google Cloud API๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์‚ฌ์šฉ ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํŠน์ • ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด Colab Enterprise์—์„œ Gemini๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ Google Cloud๋ฅผ ์œ„ํ•œ Gemini ์‚ฌ์šฉ์ž(roles/cloudaicompanion.user) ์—ญํ• ์„ ์ทจ์†Œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ IAM ์—ญํ•  ์ทจ์†Œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์˜๊ฒฌ ๋ณด๋‚ด๊ธฐ

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. BigQuery ํˆด๋ฐ”์—์„œ pen_sparkGemini๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    BigQuery ํˆด๋ฐ”์˜ Gemini ๋ฒ„ํŠผ

  3. ์˜๊ฒฌ ๋ณด๋‚ด๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ถ”์ฒœ ๊ฐœ์„ ์— ์ฐธ์—ฌ

ํ”„๋ฆฌ๋ทฐ์˜ ๊ธฐ๋Šฅ์— ์ œ์ถœํ•œ ํ”„๋กฌํ”„ํŠธ ๋ฐ์ดํ„ฐ๋ฅผ Google๊ณผ ๊ณต์œ ํ•˜์—ฌ Gemini ์ถ”์ฒœ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ BigQuery Studio ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    BigQuery Studio๋กœ ์ด๋™

  2. BigQuery ํˆด๋ฐ”์—์„œ pen_sparkGemini๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    BigQuery ํˆด๋ฐ”์˜ Gemini ๋ฒ„ํŠผ

  3. BigQuery์˜ Gemini ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ์„ค์ • ๋Œ€ํ™”์ƒ์ž์—์„œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ์„ค์ •์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๊ณต์œ  ์„ค์ •์€ ์ „์ฒด ํ”„๋กœ์ ํŠธ์— ์ ์šฉ๋˜๋ฉฐ serviceusage.services.enable ๋ฐ serviceusage.services.list IAM ๊ถŒํ•œ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž๋งŒ ์ด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์Šคํ„ฐ ํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google Cloud ๋ฅผ ์œ„ํ•œ Gemini ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์Šคํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Gemini ๋ฐ BigQuery ๋ฐ์ดํ„ฐ

์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด BigQuery์˜ Gemini๊ฐ€ ํ–ฅ์ƒ๋œ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด BigQuery์˜ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ชจ๋‘์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ BigQuery์˜ Gemini์—์„œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ€๊ฒฉ ์ฑ…์ •

์ด ๊ธฐ๋Šฅ์˜ ๊ฐ€๊ฒฉ ์ฑ…์ •์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ BigQuery์˜ Gemini ๊ฐ€๊ฒฉ ์ฑ…์ • ๊ฐœ์š”๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

ํ• ๋‹น๋Ÿ‰ ๋ฐ ํ•œ๋„

์ด ๊ธฐ๋Šฅ์˜ ํ• ๋‹น๋Ÿ‰ ๋ฐ ํ•œ๋„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ BigQuery์˜ Gemini ํ• ๋‹น๋Ÿ‰์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„