Google ํ๋งค์ ์ผํฐ ์ ํ ํ ์ด๋ธ ์คํค๋ง
๊ฐ์
Google ํ๋งค์ ์ผํฐ ๋ณด๊ณ ๋ฐ์ดํฐ๊ฐ BigQuery๋ก ์ ์ก๋๋ฉด ์ ํ ๋ฐ ์ ํ ๋ฌธ์ ๋ฐ์ดํฐ ํ์์ ์ฃผ๋ก Content API์ Products ๋ฐ Productstatuses ๋ฆฌ์์ค์ ๊ด๋ จ ํ๋ ํ์๊ณผ ์ผ์นํฉ๋๋ค.
๊ฐ๋ณ ํ๋งค์ ID๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๊ฐ Products_MERCHANT_ID
ํ
์ด๋ธ์ ๊ธฐ๋ก๋๊ณ , MCA ๊ณ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ Products_AGGREGATOR_ID
ํ
์ด๋ธ์ ๊ธฐ๋ก๋ฉ๋๋ค.
์คํค๋ง
Products_
ํ
์ด๋ธ์๋ ๋ค์๊ณผ ๊ฐ์ ์คํค๋ง๊ฐ ์์ต๋๋ค.
์ด | BigQuery ๋ฐ์ดํฐ ์ ํ | ์ค๋ช | ์์ ๋ฐ์ดํฐ |
---|---|---|---|
product_data_timestamp |
TIMESTAMP |
์ ํ ๋ฐ์ดํฐ์ ํ์์คํฌํ | 2023-09-14 11:49:50 UTC |
product_id |
STRING |
๋ค์๊ณผ ๊ฐ์ ํ์์ Content API์ ์ํ REST ID:
channel:content_language:feed_label:offer_id . ๊ธฐ๋ณธ ํค์
๋๋ค. |
online:en:AU:666840730 |
merchant_id |
INTEGER |
ํ๋งค์ ๊ณ์ ID | 1234 |
aggregator_id |
INTEGER |
๋ฉํฐ ํด๋ผ์ด์ธํธ ๊ณ์ ์ ์ ๊ทธ๋ฆฌ๊ฒ์ดํฐ ๊ณ์ ID | 12345 |
offer_id |
STRING |
ํ๋งค์๊ฐ ์ ํ์ ID๋ฅผ ์ ๊ณตํ์ต๋๋ค. | tddy123uk |
title |
STRING |
์ํ ์ ๋ชฉ | TN2351 black USB |
description |
STRING |
์ํ์ ์ค๋ช | TN2351 black USB๋ XJS๊ฐ LLCD ํ๊ฒฝ์ ๋ฏธ์น๋ ์ํฅ์ ์ฌ์ ์ํ์ต๋๋ค. |
link |
STRING |
ํ๋งค์๊ฐ ์ ํ์ ๋ฐฉ๋ฌธ ํ์ด์ง URL์ ์ ๊ณตํ์ต๋๋ค. | https://www.example.com/tn2351-black-usb/6538811?skuId=1234 |
mobile_link |
STRING |
ํ๋งค์๊ฐ ๋ฐฉ๋ฌธ ํ์ด์ง์ ๋ชจ๋ฐ์ผ์ ์ต์ ํ๋ ๋ฒ์ ์ URL์ ์ ๊ณตํ์ต๋๋ค. | https://www.example.com/tn2351-black-usb/6538811?skuId=1234 |
image_link |
STRING |
ํ๋งค์๊ฐ ๊ธฐ๋ณธ ์ ํ ์ด๋ฏธ์ง์ URL์ ์ ๊ณตํ์ต๋๋ค. | https://www.example.com/tn2351-black-usb/6538811?skuId=1234 |
additional_image_links |
STRING , REPEATED |
ํ๋งค์๊ฐ ์ํ ์ด๋ฏธ์ง์ ์ถ๊ฐ URL์ ์ ๊ณตํ์ต๋๋ค. | |
content_language |
STRING |
์ํ์ ISO 639-1 ์ธ์ด ์ฝ๋(๋ ๊ธ์) | en |
target_country |
STRING |
์ ํ์ด ์ฌ๋ฌ ๊ตญ๊ฐ๋ฅผ ํ๊ฒํ ํ ์ ์๋๋ก ํ๊ธฐ ์ํ ๋ณ๊ฒฝ์ฌํญ์ ์ผํ์ผ๋ก ์ง์ ์ค๋จ๋์์ต๋๋ค(ํญ์ NULL๋ก ์ค์ ๋จ). ๋์ destinations.approved_countries, destinations.pending_countries, destinations.disapproved_countries ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋์ ๊ตญ๊ฐ์ ์ํ๋ฅผ ํ์ธํ์ธ์. ์ด์ issues.applicable_countries ํ๋์ ํ์๋ ๋๋ก ๋ฌธ์ ๊ฐ ์ผ๋ถ ๋์ ๊ตญ๊ฐ์๋ง ์ ์ฉ๋๊ณ ๋ค๋ฅธ ๊ตญ๊ฐ์๋ ์ ์ฉ๋์ง ์์ ์ ์์ต๋๋ค. | null |
feed_label |
STRING |
ํ๋งค์๊ฐ ์ํ์ ๋ํ ํผ๋ ๋ผ๋ฒจ์ ์ ๊ณตํ๊ฑฐ๋, ๋๋ ์ ๊ณตํ์ง ์์ ๊ฒฝ์ฐ - ์
๋๋ค. |
US |
channel |
STRING |
์ํ์ ์ฑ๋(online ๋๋ local ) |
local, online |
expiration_date |
TIMESTAMP |
ํ๋งค์๊ฐ ์ฝ์ ์ ์ง์ ํ ๋๋ก ์ํ์ด ๋ง๋ฃ๋๋ ๋ ์ง ๋ฐ ์๊ฐ์ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด null๋ก ์ค์ ํฉ๋๋ค. | 2023-10-14 00:00:00 UTC |
google_expiration_date |
TIMESTAMP |
Google ์ผํ์์ ์ํ์ด ๋ง๋ฃ๋๋ ๋ ์ง ๋ฐ ์๊ฐ. null๋ก ์ค์ ํ์ง ๋ง์ธ์. | 2023-10-14 00:00:00 UTC |
adult |
BOOLEAN |
์ํ์ด ์ฑ์ธ ๋์์ธ ๊ฒฝ์ฐ true๋ก ์ค์ ํฉ๋๋ค. | true, false |
age_group |
STRING |
ํ๋งค์๊ฐ ์ํ์ ๋์ ์ฐ๋ น๋๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | newborn, infant, toddler, kids, adult |
availability |
STRING |
ํ๋งค์๊ฐ ์ํ์ ์ฌ๊ณ ์ํ๋ฅผ ์ ๊ณตํ์ต๋๋ค. | in stock, out of stock |
availability_date |
TIMESTAMP |
ํ๋งค์๊ฐ ์ ์ฃผ๋ฌธ ์ ํ์ ๋ฐฐ์กํ ์ ์๋ ๋ ์ง ๋ฐ ์๊ฐ์ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | 2023-10-14 00:00:00 UTC |
brand |
STRING |
ํ๋งค์๊ฐ ์ํ์ ๋ธ๋๋๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | ๋ธ๋๋ ์ด๋ฆ |
google_brand_id |
STRING |
์ํ์ Google ๋ธ๋๋ ID์ ๋๋ค. | 12759524623914508053 |
color |
STRING |
ํ๋งค์๊ฐ ์ํ์ ์์์ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | ์ค๋ฒ, ๊ทธ๋ ์ด, ๋ฉํฐ |
condition |
STRING |
ํ๋งค์๊ฐ ์ํ์ ์กฐ๊ฑด์ ์ ๊ณตํ์ต๋๋ค. | new, used, refurbished |
custom_labels |
RECORD |
ํ๋งค์๊ฐ ์ผํ ๊ด๊ณ ์์ ์ํ์ ๋ง์ถค ๊ทธ๋ฃนํํ๊ธฐ ์ํด ์ปค์คํ ๋ผ๋ฒจ์ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | |
custom_labels.label_0 |
STRING |
์ปค์คํ ๋ผ๋ฒจ 0 | ๋ด ์ปค์คํ ๋ผ๋ฒจ |
custom_labels.label_1 |
STRING |
์ปค์คํ ๋ผ๋ฒจ 1 | ๋ด ์ปค์คํ ๋ผ๋ฒจ |
custom_labels.label_2 |
STRING |
์ปค์คํ ๋ผ๋ฒจ 2 | ๋ด ์ปค์คํ ๋ผ๋ฒจ |
custom_labels.label_3 |
STRING |
์ปค์คํ ๋ผ๋ฒจ 3 | ๋ด ์ปค์คํ ๋ผ๋ฒจ |
custom_labels.label_4 |
STRING |
์ปค์คํ ๋ผ๋ฒจ 4 | ๋ด ์ปค์คํ ๋ผ๋ฒจ |
gender |
STRING |
ํ๋งค์๊ฐ ์ํ์ ๋์ ์ฑ๋ณ์ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | unisex, male, female |
gtin |
STRING |
ํ๋งค์๊ฐ ์ํ์ ๊ตญ์ ๊ฑฐ๋๋จํ์๋ณ์ฝ๋(GTIN)๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | 3234567890126 |
item_group_id |
STRING |
ํ๋งค์๊ฐ ๋์ผํ ์ํ์ ๋ชจ๋ ๋ณํ์ ๋ํด ๊ณต์ ์๋ณ์๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | AB12345 |
material |
STRING |
ํ๋งค์๊ฐ ์ํ์ ๋ง๋ ์์ฌ๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | ๊ฐ์ฃฝ |
mpn |
STRING |
ํ๋งค์๊ฐ ์ํ์ ์ ์กฐ์ ์ฒด ๋ถํ ๋ฒํธ(MPN)๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL๋ก ์ค์ ํฉ๋๋ค. | GO12345OOGLE |
pattern |
STRING |
ํ๋งค์๊ฐ ํจํด์ ์ ๊ณตํ์ต๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | ์คํธ๋ผ์ดํ |
price |
RECORD |
ํ๋งค์๊ฐ ์ ๊ณตํ ์ํ์ ๊ฐ๊ฒฉ์ ๋๋ค. | |
price.value |
NUMERIC |
์ํ์ ๊ฐ๊ฒฉ | 19.99 |
price.currency |
STRING |
๊ฐ๊ฒฉ์ ํตํ | USD |
sale_price |
RECORD |
ํ๋งค์๊ฐ ์ํ์ ํ ์ธ๊ฐ๋ฅผ ์ ๊ณตํ์ต๋๋ค. | |
sale_price.value |
NUMERIC |
์ํ์ ํ ์ธ๊ฐ. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | 19.99 |
sale_price.currency |
STRING |
ํ ์ธ๊ฐ์ ํตํ. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | USD |
sale_price_effective_start_date |
TIMESTAMP |
์ํ ํ๋งค ์์ ๋ ์ง ๋ฐ ์๊ฐ | 2023-10-14 00:00:00 UTC |
sale_price_effective_end_date |
TIMESTAMP |
์ํ ํ๋งค ์ข ๋ฃ ๋ ์ง ๋ฐ ์๊ฐ | 2023-10-14 00:00:00 UTC |
google_product_category |
INTEGER |
์ํ์ Google ์ํ ์นดํ ๊ณ ๋ฆฌ ID. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | 2271 |
google_product_category_ids |
INTEGER, REPEATED |
์ํ์ ๋ํ Google ์ํ ์นดํ ๊ณ ๋ฆฌ ์ ์ฒด ๊ฒฝ๋ก์ด๋ฉฐ, ID ์งํฉ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ ๊ณต๋์ง ์์ผ๋ฉด NULL์ ๋๋ค. | |
google_product_category_path |
STRING |
์ธ๊ฐ์ด ์ฝ์ ์ ์๋ ์ ์ฒด ๊ฒฝ๋ก ๋ฒ์ . ์ ๊ณต๋์ง ์์ผ๋ฉด ๋น์๋ก๋๋ค. | ์๋ฅ/์ก์ธ์๋ฆฌ > ์๋ฅ > ๋๋ ์ค |
product_type |
STRING |
ํ๋งค์๊ฐ ์ ๊ณตํ ์ํ ์นดํ ๊ณ ๋ฆฌ | ํ > ์ฌ์ฑ > ๋๋ ์ค > ๋งฅ์ ๋๋ ์ค |
additional_product_types |
STRING , REPEATED |
์ํ์ ์ถ๊ฐ ์นดํ ๊ณ ๋ฆฌ | |
promotion_ids |
STRING , REPEATED |
์ ํ๊ณผ ์ฐ๊ฒฐ๋ ํ๋ก๋ชจ์ ID ๋ชฉ๋ก์ ๋๋ค. | |
destinations |
RECORD , REPEATED |
์ํ์ ์๋ํ ๋์ ์์น | |
destinations.name |
STRING |
๋์์ ์ด๋ฆ์
๋๋ค. Shopping ๋ง ์ง์๋ฉ๋๋ค. ์ด๋ ํ๋งค์ ์ผํฐ์ ๋ง์ผํ
๋ฐฉ๋ฒ '์ผํ ๊ด๊ณ ' ๋ฐ '์คํ๋ผ์ธ ํ๋งค์ ์ธ๋ฒคํ ๋ฆฌ ๊ด๊ณ '์ ํด๋นํฉ๋๋ค. |
์ผํ |
destinations.status* |
STRING |
์ ํ์ด ์ฌ๋ฌ ๊ตญ๊ฐ๋ฅผ ํ๊ฒํ ํ ์ ์๋๋ก ํ๊ธฐ ์ํ ๋ณ๊ฒฝ์ฌํญ์ ์ผํ์ผ๋ก ์ง์ ์ค๋จ๋์์ต๋๋ค(ํญ์ NULL๋ก ์ค์ ๋จ). ๋์ destinations.approved_countries, destinations.pending_countries, destinations.disapproved_countries ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋์ ๊ตญ๊ฐ์ ์ํ๋ฅผ ํ์ธํ์ธ์. ์ด์ issues.applicable_countries ํ๋์ ํ์๋ ๋๋ก ๋ฌธ์ ๊ฐ ์ผ๋ถ ๋์ ๊ตญ๊ฐ์๋ง ์ ์ฉ๋๊ณ ๋ค๋ฅธ ๊ตญ๊ฐ์๋ ์ ์ฉ๋์ง ์์ ์ ์์ต๋๋ค. | NULL |
destinations.approved_countries |
STRING, REPEATED |
ํํ์ด ์น์ธ๋ CLDR ์ง์ญ ์ฝ๋ ๋ชฉ๋ก | US, CH |
destinations.pending_countries |
STRING, REPEATED |
ํํ์ด ๋๊ธฐ ์ค์ธ CLDR ์ง์ญ ์ฝ๋ ๋ชฉ๋ก | US, CH |
destinations.disapproved_countries |
STRING, REPEATED |
ํํ์ด ์น์ธ๋์ง ์์ CLDR ์ง์ญ ์ฝ๋ ๋ชฉ๋ก | US, CH |
issues |
RECORD , REPEATED |
์ ํ๊ณผ ๊ด๋ จ๋ ์ํ ์์ค ๋ฌธ์ ์ ๋ชฉ๋ก | |
issues.code |
STRING |
๋ฌธ์ ์ ์ค๋ฅ ์ฝ๋ | image_too_generic |
issues.servability |
STRING |
์ด ๋ฌธ์ ๊ฐ ํํ ์ ๊ณต์ ๋ฏธ์น๋ ์ํฅ | ๋น์น์ธ, ์ํฅ์ ๋ฐ์ง ์์ |
issues.resolution |
STRING |
ํ๋งค์๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ์ฌ๋ถ | merchant_action, pending_processing |
issues.attribute_name |
STRING |
๋ฌธ์ ๊ฐ ๋จ์ผ ์์ฑ์ผ๋ก ์ธํด ๋ฐ์ํ ๊ฒฝ์ฐ ์์ฑ์ ์ด๋ฆ. ๊ทธ๋ ์ง ์์ผ๋ฉด Null์ ๋๋ค. | ์ด๋ฏธ์ง ๋งํฌ |
issues.destination |
STRING |
๋ฌธ์ ๊ฐ ์ ์ฉ๋๋ ๋์ ์์น. ํญ์ Shopping ๋ก ์ค์ ํฉ๋๋ค. |
์ผํ |
issues.short_description |
STRING |
๊ฐ๋จํ ๋ฌธ์ ์ค๋ช (์์ด) | ์ผ๋ฐ ์ด๋ฏธ์ง |
issues.detailed_description |
STRING |
์์ธํ ๋ฌธ์ ์ค๋ช (์์ด) | ์ ํ์ ๋ํ๋ด๋ ์ด๋ฏธ์ง ์ฌ์ฉ |
issues.documentation |
STRING |
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ์น ํ์ด์ง์ URL | https://support.google.com/merchants/answer/6098288 |
issues.applicable_countries |
STRING, REPEATED |
๋ฌธ์ ๊ฐ ์ ์ฉ๋๋ CLDR ์ง์ญ ์ฝ๋ ๋ชฉ๋ก | CH |
์ฟผ๋ฆฌ ์์
์ด ์น์ ์์๋ ์ฟผ๋ฆฌ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ ํ ๋ฐ ์ ํ ๋ฌธ์ ํต๊ณ
๋ค์ SQL ์ํ ์ฟผ๋ฆฌ๋ ์ ํ ์, ๋ฌธ์ ๊ฐ ์๋ ์ ํ, ์ผ๋ณ ๋ฌธ์ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
SELECT _PARTITIONDATE AS date, COUNT(*) AS num_products, COUNTIF(ARRAY_LENGTH(issues) > 0) AS num_products_with_issues, SUM(ARRAY_LENGTH(issues)) AS num_issues FROM dataset.Products_merchant_id WHERE _PARTITIONDATE >= 'YYYY-MM-DD' GROUP BY date ORDER BY date DESC
์ผํ ๊ด๊ณ ์ ์น์ธ๋์ง ์์ ์ ํ
๋ค์ SQL ์ํ ์ฟผ๋ฆฌ๋ ์ผํ ๊ด๊ณ ์ ํ์ํ๋๋ก ์น์ธ๋์ง ์์ ์ ํ ์๋ฅผ ๊ตญ๊ฐ๋ณ๋ก ๊ตฌ๋ถํ์ฌ ์ ๊ณตํฉ๋๋ค. ์ ์ธ๋ ๋์ ๋๋ ์ ํ ๊ด๋ จ ๋ฌธ์ ๋ก ์ธํด ๋น์น์ธ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
SELECT _PARTITIONDATE AS date, disapproved_country, COUNT(*) AS num_products FROM dataset.Products_merchant_id, UNNEST(destinations) AS destination, UNNEST(disapproved_countries) AS disapproved_country WHERE _PARTITIONDATE >= 'YYYY-MM-DD' GROUP BY date, disapproved_country ORDER BY date DESC
์น์ธ๋์ง ์์ ๋ฌธ์ ๊ฐ ์๋ ์ ํ
๋ค์ SQL ์ํ ์ฟผ๋ฆฌ๋ ๋น์น์ธ ๋ฌธ์ ๊ฐ ์๋ ์ ํ ์๋ฅผ ๊ตญ๊ฐ๋ณ๋ก ๊ตฌ๋ถํ์ฌ ๊ฐ์ ธ์ต๋๋ค.
SELECT _PARTITIONDATE AS date, applicable_country, COUNT(DISTINCT CONCAT(CAST(merchant_id AS STRING), ':', product_id)) AS num_distinct_products FROM dataset.Products_merchant_id, UNNEST(issues) AS issue, UNNEST(issue.applicable_countries) as applicable_country WHERE _PARTITIONDATE >= 'YYYY-MM-DD' AND issue.servability = 'disapproved' GROUP BY date, applicable_country ORDER BY date DESC