рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг + рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрд╢рд▓ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛, рдЬреЛ рдЕрднреНрдпрд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рдХрдИ "рдЬреИрд╕реЗ" atypical рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдиреАрдЪреЗ рдХреБрдЫ рдРрд╕реЗ рд╣реА рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рд╣реИред
рдЖрд╡реЗрджрди рд▓реЙрдЧ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕
рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЙрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ рдФрд░ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╕рдВрдХреЗрддрдХреЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ, рдпрд╛ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдЖрдк рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдИрдПрд▓рдХреЗ рд╕реНрдЯреИрдХ рдпрд╛ рдЬреИрд╕реЗ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╕реНрдкреНрд▓рдВрдХ рд░реВрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдЖрдк рдереЛрдбрд╝рд╛ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдЖрд░ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд░ рддрд░рд╣ рд╕реЗ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рджреЛрдиреЛрдВ рдореЗрдВред
рд▓реЗрдХрд┐рди рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдЖрдорддреМрд░ рдкрд░, рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреНрд▓рд╛рд╕рд┐рдХ
log4j
рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ: рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рдорд╣рддреНрд╡, рдЙрдк-рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкреНрд░рдХрд╛рд░, рд╕рдВрджреЗрд╢ рд╢рд░реАрд░ред - рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдореЗрдВ рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдШрдЯрдирд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╛рдж рдХреЗ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Milliseconds ISO 8601 рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд┐рдП рдмрд┐рдирд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддрд╛ рд╣реИред
- рд╕рдВрджреЗрд╢ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрд░рдЪрд┐рдд рдЗрдХрд╛рдИ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рд╡рд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред
- рдХрднреА-рдХрднреА рд╕рдВрджреЗрд╢ рдирд┐рдХрд╛рдп рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ, рдпрд╛ рдПрдХреНрд╕рдПрдордПрд▓ рдЪреМрд░рд╛рд╣рд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреИрдХреЗрдЬред рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рдПрдХ рдореЗрдВ рд╕рдореЗрдЯрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдПрдХ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдорд╛рд░реНрдХрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ)ред
- рдПрдЯреНрд░рд┐рдЕрдЯреНрд╕ рдХреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдИрдбреА рдХреЛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдХрдИ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдпрд╛ рд╕реИрдХрдбрд╝реЛрдВ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
- рдХрд╛рд░реНрдп рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдп рдХреЛ 2 рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдХрдЪреНрдЪрд╛ рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ;
- рдмрд╛рдж рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред
рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрд░ рдЗрд╕ рдХрджрдо рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓рд╛ рдХрджрдо рднреА рдЖрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЯреЗрд░рд╛рдмрд╛рдЗрдЯреНрд╕ рдПрдХ рдпрд╛ рджреЛ рдкреАрд╕ рд▓реЗрдВред
рдмрд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб: library(readr) library(tidyverse) library(magrittr) library(stringi) library(fs) library(glue) library(RClickhouse) library(DBI) library(anytime) library(tictoc) library(iterators) library(foreach) library(doParallel) library(futile.logger) library(re2r) library(data.table) library(future) library(doFuture) common_logname <- "DEV_log_parser.log" table_name <- "DEV_LOGS" flog.appender(appender.file(common_logname)) flog.threshold(INFO) flog.info("Start batch processing") oneTimeProcessing <- function(f_iter, log_type = c("app", "system")) { log_type <- match.arg(log_type) checkmate::assertNames(names(f_iter), permutation.of = c("fname", "short_fname", "location", "wk", "size", "id")) cfg <- list(app = list(db_table = "DEV_APP_LOGS"), system = list(db_table = "DEV_LOGS"))
рдЗрд╕ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг, рд╕рдордп рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдорд┐рд▓реАрд╕реЗрдХрдВрдб, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рд╣реЗрдЬрдирд╛, рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди, рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛, рдмрд╛рд╣рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдФрд░ рдЗрд╖реНрдЯрддрдо рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреИрдХреЗрдЬ ( re2r
) рдХреЛ re2r
, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП; рдирд┐рдпрдорд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдХреЛрдб { bencmark рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдПрдХ рд╣реА рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рд▓реЗрдВ , рдХреБрдЫ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдкрд╛рд╕ ILV рдмрдВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ})ред рд▓реЗрдХрд┐рди рдХреЛрдб рдЖрджрд░реНрд╢ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд░ рд╕рд┐рд░реНрдл рдПрдХ рдмрд╛рд░ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИред рдпрд╣ рдЬрд▓реНрджреА рдФрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдареАрдХ рд╣реИред рдПрдХ рдФрд░ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рдЦрд╛рддреЗ рдореЗрдВ рд╕рдореНрдорд╛рди рд▓реЗрддреЗ рд╣реИрдВред рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛
рдХреНрдпрд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рддреИрдпрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордп рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рддреЗрдЬреА рд╕реЗ рд╣реЛрдЧрд╛? рд╕рд╡рд╛рд▓ рдЦреБрд▓рд╛ рд╣реИред python
, perl
, awk
рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХреЛрдИ рд╣рдбрд╝рддрд╛рд▓реА рдЕрдВрддрд░ рдирд╣реАрдВ рджрд┐рдЦрд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ python
рдореЗрдВ рдЧреБрд░реБ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЖрд╡рдзрд┐рдХ "рд╡рди-рдЯрд╛рдЗрдо" рдХрд╛рд░реНрдп рд╣реИред
рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рдЖрджреЗрд╢ рдмрд╣рд╛рд▓ рдХрд░рдирд╛
рд╣рд╛рде рдкрд░ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛рддреНрд░рд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕рднреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╢реВрдЯрд┐рдВрдЧ рддрд┐рдерд┐ ( YYYY-MM-DD hh_mm_ss
) рджреНрд╡рд╛рд░рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдордп рдХреЗ рддреАрд░ рдкрд░ рдлреЛрдЯреЛ рдХрд╛ рдХреНрд░рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИред Exif рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рдЪрд░рдг рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред
рдФрд░ рдпрд╣ рднреА "рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ" рдореЗрдВ рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП exifr
рдФрд░ exifr
ред
- рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдИ;
- рдмрд╛рд╣рд░ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ;
- рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд┐рдП рдЧрдП рдПрд╕реАрд╕реА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЧрдИред рд╕рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред
рддрдереНрдп рдХреА рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд╛рд░реНрдп рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреА рдПрдХреНрд╕рд┐рдл рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛, рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЗрд╡рд▓ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрдВрдХрд╛рд▓ рдФрд░ рдХрд╛рдо рдХреЗ рддрд░реНрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреЗ рд╣реИрдВред
рдирдореВрдирд╛ рддреНрд╡рд░рд┐рдд рд╣рд╛рде рдХреЛрдб: library(tidyverse) library(magrittr) library(stringi) library(lubridate) library(stringi) library(fs) library(glue) library(futile.logger) library(anytime) library(tictoc) library(bench) library(exifr) library(tictoc) input_path <- "S:/ " %>% fs::path_real()
рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ exifr
? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛ ExifTool
рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рд╕рд┐рдВрдереЗрдЯрд┐рдХ рд▓рдЧ рд░рд╣рд╛ рд╣реЛ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдмрд╣рд╕ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХреНрдЬрд╝рд┐рдлрд╝ рдФрд░ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдФрд░ рдЬреАрдпреВрдЖрдИ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИред рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЛ рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордп рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреИрдорд░реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдорд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЙрд╕ рдкрд░ рд╕рдЯреАрдХ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ?), рдЗрд╕рд▓рд┐рдП рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдордп рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕рдорд╛рдкрди
рдЗрд╕реА рддрд░рд╣ рдХреА рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХреЛ рдЖрд░ рдХреА рдорджрдж рд╕реЗ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓рд╛ рдкреНрд░рдХрд╛рд╢рди - "рдмрдЪреНрдЪреЗ, рдЧрдгрд┐рдд рдФрд░ рдЖрд░" ред