JavaScript์์ ๋ฉ์์ง ๋ก๊น ํ๊ธฐยถ
Snowflake JavaScript API์ ํฌํจ๋ snowflake
์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ JavaScript๋ก ์์ฑ๋ ํจ์ ๋๋ ํ๋ก์์ ์ฒ๋ฆฌ๊ธฐ์ ๋ฉ์์ง๋ฅผ ๋ก๊น
ํ ์ ์์ต๋๋ค. ๋ก๊ทธ ํญ๋ชฉ์ ์ ์ฅํ๋๋ก ์ด๋ฒคํธ ํ
์ด๋ธ์ ์ค์ ํ๋ฉด Snowflake๊ฐ ์ฒ๋ฆฌ๊ธฐ ์ฝ๋์์ ์์ฑ๋ ๋ก๊ทธ ํญ๋ชฉ์ ํ
์ด๋ธ์ ์ ์ฅํฉ๋๋ค. JavaScript API์ ๋ํ ์ฐธ์กฐ ์๋ฃ๋ JavaScript ์ ์ฅ ํ๋ก์์ API ์น์
์ ์ฐธ์กฐํ์ญ์์ค.
์ฝ๋์์ ๋ก๊น ํ๊ธฐ ์ ์ ์ํ๋ ๋ฉ์์ง๊ฐ ์ด๋ฒคํธ ํ ์ด๋ธ์ ์ ์ฅ๋๋๋ก ๋ก๊น ์์ค์ ์ค์ ํ๋์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก๊น , ๋ฉํธ๋ฆญ ๋ฐ ์ถ์ ์ ์ํ ์์ค ์ค์ ํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฐธ๊ณ
๋ฉ์์ง ๋ก๊น ์ ์์ํ๋ ค๋ฉด ๋จผ์ ์ด๋ฒคํธ ํ ์ด๋ธ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด๋ฒคํธ ํ ์ด๋ธ ๊ฐ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ด๋ฒคํธ ํ ์ด๋ธ์์ SELECT ๋ช ๋ น์ ์คํํ์ฌ ๋ก๊ทธ ๋ฉ์์ง์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ก๊ทธ ๋ฉ์์ง ๋ณด๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
Snowflake์์ ๋ก๊น ์ค์ ๋ฐ ๋ฉ์์ง ๊ฒ์์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ ํจ์ ๋ฐ ํ๋ก์์ ์ ๋ฉ์์ง ๋ก๊น ํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๋ค์ ์์ ์ ์ฝ๋์์๋ ํฌํจ๋ snowflake
์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์๋๋ ๊ฐ ์์ค์์ ๋ฉ์์ง๋ฅผ ๋ก๊น
ํฉ๋๋ค. ์ฐธ๊ณ ๋ก, ์
๋ ฅ ํ์ ์ฒ๋ฆฌํ๋ ๋ฉ์๋์์ ๋ก๊น
๋ ๋ฉ์์ง๋ UDF์์ ์ฒ๋ฆฌํ ๋ชจ๋ ํ์ ๋ํด ๋ก๊น
๋ฉ๋๋ค. UDF๊ฐ ํฐ ํ
์ด๋ธ์์ ์คํ๋๋ฉด ์ด๋ฒคํธ ํ
์ด๋ธ์ ๋ง์ ์์ ๋ฉ์์ง๊ฐ ์์ฑ๋ ์ ์์ต๋๋ค.
snowflake.log("info", "Information-level message");
snowflake.log("error", "Error message");
snowflake.log("warn", "Warning message");
snowflake.log("debug", "Debug message");
snowflake.log("trace", "Trace message");
snowflake.log("fatal", "Fatal message");
์ฌ์ฉ์ ์ง์ ํน์ฑ ์ถ๊ฐํ๊ธฐยถ
๋ก๊ทธ ํญ๋ชฉ์ ์์ฑํ ๋ ํค-๊ฐ ํ์ด๋ก ์ฌ์ฉ์ ๊ณ ์ ์ ํน์ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. Snowflake๋ ์ด๋ฌํ ์ฌ์ฉ์ ์ง์ ํน์ฑ์ ์ด๋ฒคํธ ํ ์ด๋ธ์ RECORD_ATTRIBUTES ์ด ์ ์ ์ฅํฉ๋๋ค.
snowflake.log
๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉ์ ์ง์ ํน์ฑ์ ์ถ๊ฐํ๋ ค๋ฉด log
ํจ์์ ์ธ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌํ JSON ํ์์ ํค-๊ฐ ํ์ด๋ฅผ ์กฐํฉํฉ๋๋ค.
๋ค์ ์์ ์ ์ฝ๋๋ ์ด๋ฒคํธ ํ ์ด๋ธ์ VALUE ์ด์ โํน์ฑ ํฌํจ ๊ธฐ๋กโ ๋ฉ์์ง๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๋ํ 2๊ฐ์ RECORD_ATTRIBUTES ์ด์ ์ฌ์ฉ์ ์ง์ ํน์ฑ๋ ์ถ๊ฐํฉ๋๋ค.
CREATE OR REPLACE PROCEDURE do_logging_javascript()
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
let log_attributes = {
"custom1": "value1",
"custom2": "value2"
}
snowflake.log("info", "Logging with attributes", log_attributes)
return "success";
$$;
์ด log
ํธ์ถ์ ์ถ๋ ฅ์ ์ด๋ฒคํธ ํ
์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค. RECORD_ATTRIBUTES ์ด์๋ Snowflake๊ฐ ์๋์ผ๋ก ์ถ๊ฐํ๋ ํน์ฑ์ด ํฌํจ๋ฉ๋๋ค.
------------------------------------------------------------------
| VALUE | RECORD_ATTRIBUTES |
------------------------------------------------------------------
| "Logging with attributes" | { |
| | "custom1": "value1", |
| | "custom2": "value2" |
| | } |
------------------------------------------------------------------