custom_classifier !ADD_REGEXยถ

์ฐธ๊ณ  ํ•ญ๋ชฉ:

๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜๊ธฐ ์‚ฌ์šฉ

์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜์ž์— ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ ์ •๊ทœ์‹์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ์—ด ์ด๋ฆ„ ๋ฐ ์„ค๋ช…์— ๋Œ€ํ•œ ์ •๊ทœ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธยถ

<custom_classifier>!ADD_REGEX(
  '<semantic_category>' ,
  '<privacy_category>' ,
  '<value_regex>' ,
  [ <column_name_regex> ] ,
  [ <description> ] ,
  [ <threshold> ]
  )
Copy

์ธ์žยถ

ํ•„์ˆ˜:

semantic_category

์˜๋ฏธ ์ฒด๊ณ„ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์‹๋ณ„์ž(์ด๋ฆ„)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜๋ฏธ ์ฒด๊ณ„ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹œ์Šคํ…œ ํƒœ๊ทธ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

privacy_category

'IDENTIFIER', 'QUASI_IDENTIFIER' ๋˜๋Š” 'SENSITIVE' ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹œ์Šคํ…œ ํƒœ๊ทธ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

value_regex

์—ด์˜ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

REGEXP_LIKE ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ •๊ทœ์‹์˜ ๊ตฌ๋ฌธ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ํƒ ์‚ฌํ•ญ:

column_name_regex

๋ถ„๋ฅ˜ํ•˜๋ ค๋Š” ์—ด์˜ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š” ์ •๊ทœ์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

description

์ธ์Šคํ„ด์Šค์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฐ’์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

threshold

์ฑ„์  ๊ทœ์น™์— ๋Œ€ํ•œ ์ž„๊ณ„๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ ๋ฒ”์œ„๋Š” 0.0 ๋ณด๋‹ค ํฌ๊ณ  1.0 ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’: 0.8.

์ถœ๋ ฅยถ

์นดํ…Œ๊ณ ๋ฆฌ์™€ ์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜์ž์˜ ์—ฐ๊ฒฐ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ ๋ฉ”์‹œ์ง€๋ฅผ classifier_name:category_name ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ œ์–ด ์š”๊ตฌ ์‚ฌํ•ญยถ

์ด ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์—ญํ•  ์—๋Š” ์ตœ์†Œํ•œ ๋‹ค์Œ ๊ถŒํ•œ ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค ์—ญํ• 

์˜ค๋ธŒ์ ํŠธ

์ฐธ๊ณ 

custom_classifier !PRIVACY_USER

์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜ ์ธ์Šคํ„ด์Šค.

์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณ„์ • ์—ญํ• ์—๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜์ž์— ๋Œ€ํ•ด ์ด ์ธ์Šคํ„ด์Šค ์—ญํ• ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์— ์‚ฌ์šฉ๋˜๋Š” ๊ณ„์ • ์—ญํ• ์€ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํ‚ค๋งˆ์˜ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ƒ์œ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ USAGE ๊ถŒํ•œ.

์ง€์ •๋œ ๊ถŒํ•œ ์„ธํŠธ๋กœ ์‚ฌ์šฉ์ž ์ง€์ • ์—ญํ• ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์€ ์‚ฌ์šฉ์ž ์ง€์ • ์—ญํ•  ๋งŒ๋“ค๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋ณด์•ˆ ์˜ค๋ธŒ์ ํŠธ ์— ๋Œ€ํ•ด SQL ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์—ญํ• ๊ณผ ๊ถŒํ•œ ๋ถ€์—ฌ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ •๋ณด๋Š” ์•ก์„ธ์Šค ์ œ์–ด์˜ ๊ฐœ์š” ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์‚ฌ์šฉ๋ฒ• ๋…ธํŠธยถ

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

  • ๋ณ„๋„์˜ SQL ๋ฌธ์—์„œ ๊ฐ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค(๋ฉ”์„œ๋“œ ์—ฐ๊ฒฐ ์—†์Œ).

  • ๋ถ„๋ฅ˜ ๋ชฉ์ ์˜ ๋ชจ๋“  ์ •๊ทœ์‹ ๊ฒ€์ƒ‰์€ ๋Œ€/์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜ ์ธ์Šคํ„ด์Šค์— ์ •๊ทœ์‹์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ์ •๊ทœ์‹์„ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ •๊ทœ์‹๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฐ’๋งŒ ๊ฒฐ๊ณผ์— ๋ฐ˜ํ™˜๋˜๋„๋ก ํ•˜๋ ค๋ฉด [ NOT ] REGEXP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

    SELECT <col_to_classify>
    FROM <table_with_col_to_classify>
    WHERE <col_to_classify> REGEXP('<regex>');
    
    Copy

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฌธ์ž์—ด ํ•จ์ˆ˜(์ •๊ทœ์‹) ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆยถ

medical_codes ์ธ์Šคํ„ด์Šค์— ์นดํ…Œ๊ณ ๋ฆฌ์™€ ์ •๊ทœ์‹์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

CALL medical_codes!ADD_REGEX(
  'ICD_10_CODES',
  'IDENTIFIER',
  '[A-TV-Z][0-9][0-9AB]\.?[0-9A-TV-Z]{0,4}',
  'ICD.*',
  'Add a regex to identify ICD-10 medical codes in a column',
  0.8
);
Copy

๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ:

+---------------+
|   ADD_REGEX   |
+---------------+
| ICD_10_CODES  |
+---------------+