Microsoft SQL рд╕рд░реНрд╡рд░ рдореЗрдВ R рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Google Analytics рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк Google рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft SQL рд╕рд░реНрд╡рд░ рдореЗрдВ R рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рд╕реЗ)ред


рдХрд╛рд░реНрдп - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ MS SQL рд╕рд░реНрд╡рд░ рд╣реИ рдФрд░ рд╣рдо API рджреНрд╡рд╛рд░рд╛ DWH рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ


рд╣рдо Google Analytics (GA) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП googleAnalyticsR рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдЗрд╕рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: RGoogleAnalytic ред
рд╕рдорд╕реНрдпрд╛ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдорд╛рди рд╣реЛрдВрдЧреЗред


MS SQL рд╕рд░реНрд╡рд░ рдкрд░ R рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдпрд╣ MS SQL рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред





  1. рдпрд╣ рд╡рд╣ рдЖрд░ рд╣реИ рдЬреЛ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реАрдзреЗ рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛ (рдЬрд┐рд╕реЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд╢реНрдЪрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
  2. рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рддреЛрдбрд╝рдиреЗ рдХреЗ рдбрд░ рдХреЗ рдмрд┐рдирд╛ рдЖрд░ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдЖрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдкреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рдордЭреМрддреЗ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд╛рдзрд╛рд░рдг рдЖрд░ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЖрд░ рдУрдкрди



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдХреНрдпрд╛ рд╣реИ:
Microsoft рдЖрд░ рдУрдкрди рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдлреНрдд рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рдЖрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреИрдХреЗрдЬ рд╕реАрдЖрд░рдПрдПрди рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдордЖрд░рдПрдПрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред


рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдл рдПрдордЖрд░рдПрдПрди рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ - рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрдордПрд▓ рд╕рд░реНрд╡рд░ ред


рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рд╣реЛрдВрдЧреЗ - RevoScaleR ред


RevoScaleR рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЖрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред


рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ Microsoft R рдЗрдВрдЯрд░реИрдХреНрд╢рди рдорд┐рд▓рддрд╛ рд╣реИред



рдпрд╣ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддреБрд░рдВрдд рдореБрдлреНрдд рд╕рдВрд╕реНрдХрд░рдг RStudio рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред


R рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


SSMS рдореЗрдВ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:


SQL рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ


sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE; 

рд╕рд░реНрд╡рд░ sql рдкреБрдирдГ рдЖрд░рдВрдн


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ R рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИрдВ


 EXECUTE sp_execute_external_script @language =N'R', @script=N'print(version)'; 

SQL рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ R рд╕рдВрдХреБрд▓ рдХрд╛ рд╕реНрдерд╛рди рдЬреНрдЮрд╛рдд рдХрд░реЗрдВ


 declare @Rscript nvarchar(max) set @Rscript = N' InstaledLibrary <- library() InstaledLibrary <- as.data.frame(InstaledLibrary$results ) OutputDataSet <- InstaledLibrary ' EXECUTE sp_execute_external_script @language = N'R' , @script = @Rscript WITH RESULT SETS (([Package] varchar(255) NOT NULL, [LibPath] varchar(255) NOT NULL, [Title] varchar(255) NOT NULL)); 


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, R MS SQL рдкреИрдХреЗрдЬ рдХрд╛ рдкрде:
C: / рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ / Microsoft SQL рд╕рд░реНрд╡рд░ / MSSQL14.MSSQLSERVER / R_SERVICES / рдкреБрд╕реНрддрдХрд╛рд▓рдп


RStudio рдЪрд▓рд╛рдПрдВред


рдПрдХ рдЕрдЪреНрдЫрд╛ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрдИ рдЖрд░ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо SQL рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред




RStudio рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рдмрд╛рдж рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдПрдВрдЧреАред


GoogleAnalyticsR рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


RStudio рдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ


 library() 

R рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд░реНрдЬрди (рдЬрд┐рд╕рдХреЗ рд╕рд╛рде RStudio рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдХреЗ рдкреИрдХреЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬреЗрдВ


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд░рд╛рд╕реНрддрд╛:
C: / рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ / Microsoft SQL рд╕рд░реНрд╡рд░ / 140 / R_SERVER / рдкреБрд╕реНрддрдХрд╛рд▓рдп


RStudio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ googleAnalyticsR рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ




рдпрд╣рд╛рдБ рдХреБрдЫ рдЫрд╛рдпрд╛рдВрдХрд┐рдд рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╣реИ:
рдЖрдк рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд┐рд╕реНрдЯрдо рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗред рд╕рдВрдХреБрд▓ рдХреЛ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред



рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред



рдЕрдирдЬрд╝рд┐рдк рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЖрд░ рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдЬреЛ MS SQL рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ
C: / рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ / Microsoft SQL рд╕рд░реНрд╡рд░ / MSSQL14.MSSQLSERVER / R_SERVICES / рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдЕрдирдЬрд┐рдк рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХреЛ R рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд░реНрдЬрди (рдЬреЛ RStudio рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ рднреА рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП


рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ
C: / рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ / Microsoft SQL рд╕рд░реНрд╡рд░ / 140 / R_SERVER / рдкреБрд╕реНрддрдХрд╛рд▓рдп

(рд╣рдордиреЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╕реЗ рдЗрди рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рд╕реАрдЦрд╛)


рдЖрд░ рд╕реЗрд╡рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╕рд╣реЗрдЬрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдЕрдиреБрднрд╡ рдиреЗ рд╕рд╛рдмрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред


рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдмрджрд▓реЗрдВред


рдХреМрд╢рд▓ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реНрдпрд╛рдпрд╛рдо рдХреЛ рджреЛрд╣рд░рд╛рдПрдВред
рдХреЗрд╡рд▓ рдЕрдм рд╣рдо рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдореМрдЬреВрджрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
(рдпрд╣ рдЬреАрдП рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ)


RStudio рдореЗрдВ рдирдП рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ



рдкреИрдХреЗрдЬ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдирдП рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЙрд╕реА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░реЗрдВред


MS SQL рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдХреА рдЬрд╛рдБрдЪ


 declare @Rscript nvarchar(max) set @Rscript = N' library(httr) HEAD("https://www.yandex.ru", verbose()) ' EXECUTE sp_execute_external_script @language = N'R' , @script = @Rscript 

рдЪреВрдВрдХрд┐ SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧреАред



рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реЗ рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред


рдПрд╕рдХреНрдпреВрдПрд▓ 2017



рдПрд╕рдХреНрдпреВрдПрд▓ 2019



Ssms рдореЗрдВ


 --      create database Demo go use Demo go --  ,       Google Analytics create schema GA go --        GA drop table if exists [GA].[token] create table [GA].[token]( [id] varchar(200) not null, [value] varbinary(max) constraint unique_id unique (id)) 

Google Analytics рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


RStudio рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдпрд╣ рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ Google рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдВрдбреЛ рдХреЛ рдЦреЛрд▓реЗрдЧрд╛ред рдЖрдкрдХреЛ Google Analytics рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдиреБрдорддрд┐ рджреЗрдиреА рд╣реЛрдЧреАред


 #       Sys.setenv(TZ="Europe/Berlin") library(googleAnalyticsR) #   ga_auth() PathTokenFile <- paste ( getwd(),"/", ".httr-oauth" , sep="") TokenFile <- readBin(PathTokenFile, "raw", file.info(PathTokenFile)$size) #     conStr <- 'Driver={SQL Server};Server=EC2AMAZ-68OQ7JV;Database=Demo;Uid=Sa;Pwd=SaSql123' ds <- RxOdbcData(table="ga.token", connectionString=conStr) #     rxWriteObject(ds, "ga_TokenFile", TokenFile) 

SSMS рдореЗрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ Google рдХрд╛ рдЯреЛрдХрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ


 Select * from [GA].[token] 

RStudio рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GA рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ


 #    RStudio Sys.setenv(TZ="Europe/Berlin") library(googleAnalyticsR) #     conStr <- 'Driver={SQL Server};Server=EC2AMAZ-68OQ7JV;Database=Demo;Uid=Sa;Pwd=SaSql123' #      ds <- RxOdbcData(table="ga.token", connectionString=conStr) PathTokenFile <- paste ( getwd(),"/", ".httr-oauth" , sep="") TokenFile <- rxReadObject(ds, "ga_TokenFile") write.filename = file(PathTokenFile, "wb") writeBin(TokenFile, write.filename) close(write.filename) Sys.setenv("GA_AUTH_FILE" = PathTokenFile) #   ga_auth() #  ga_id account_list <- ga_account_list() ga_id <- account_list$viewId #    OutputDataSet <-google_analytics(ga_id, start="2019-01-01", end="2019-08-01", metrics = "sessions", dimensions = "date") OutputDataSet 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рддреЛ R рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ SQL рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред


 drop table if exists #GA_session create table #GA_session ( [date] date, [sessions] int ) declare @Rscript nvarchar(max) set @Rscript = N' Sys.setenv(TZ="Europe/Berlin") library(googleAnalyticsR) #     conStr <- ''Driver={SQL Server};Server=EC2AMAZ-68OQ7JV;Database=Demo;Uid=Sa;Pwd=SaSql123'' #      ds <- RxOdbcData(table="ga.token", connectionString=conStr) PathTokenFile <- paste ( getwd(),"/", ".httr-oauth" , sep="") TokenFile <- rxReadObject(ds, "ga_TokenFile") write.filename = file(PathTokenFile, "wb") writeBin(TokenFile, write.filename) close(write.filename) Sys.setenv("GA_AUTH_FILE" = PathTokenFile) #   ga_auth() #  ga_id account_list <- ga_account_list() ga_id <- account_list$viewId #    OutputDataSet <-google_analytics(ga_id, start="2019-01-01", end="2019-08-01", metrics = "sessions", dimensions = "date") OutputDataSet$date <- as.character(OutputDataSet$date) ' -- print @Rscript insert into #GA_session ([date],[sessions]) EXECUTE sp_execute_external_script @language = N'R', @script = @Rscript Select * from #GA_session order by [date] asc 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред


 conStr <- ''Driver={SQL Server};Server=EC2AMAZ-68OQ7JV;Database=Demo;Trusted_Connection=true'' #   <<<===     тАУ      

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕реЗрд╡рд╛ рдХреЙрд▓рд┐рдВрдЧ рдЖрд░ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред



(рдмреЗрд╢рдХ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдореИрдВрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛)


рд╣рдо SQL рдХреНрд╡реЗрд░реА рдХреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред


 Create procedure Ga.Get_session @Date_start date ='2019-01-01', @Date_End date ='2019-08-01' as drop table if exists #GA_session create table #GA_session ( [date] date, [sessions] int ) declare @Rscript nvarchar(max) set @Rscript =CONCAT( N' #    RStudio Sys.setenv(TZ="Europe/Berlin") library(googleAnalyticsR) #     conStr <- ''Driver={SQL Server};Server=EC2AMAZ-68OQ7JV;Database=Demo;Trusted_Connection=true'' #   <<<===     -    ds <- RxOdbcData(table="ga.token", connectionString=conStr) PathTokenFile <- paste ( getwd(),"/", ".httr-oauth" , sep="") TokenFile <- rxReadObject(ds, "ga_TokenFile") write.filename = file(PathTokenFile, "wb") writeBin(TokenFile, write.filename) close(write.filename) Sys.setenv("GA_AUTH_FILE" = PathTokenFile) #   ga_auth() #  ga_id account_list <- ga_account_list() ga_id <- account_list$viewId #    OutputDataSet <-google_analytics(ga_id, start="' , @Date_start ,N'", end="' , @Date_End ,N'", metrics = "sessions", dimensions = "date") OutputDataSet$date <- as.character(OutputDataSet$date) ' ) -- print @Rscript insert into #GA_session ([date],[sessions]) EXECUTE sp_execute_external_script @language = N'R', @script = @Rscript Select * from #GA_session order by [date] asc 

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ


 -- Default options exec Ga.Get_session -- Get sessions for a given period exec Ga.Get_session @Date_start ='2019-08-01', @Date_End ='2019-09-01' 

рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдЖрд░ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред SQL рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЖрдпрд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рджрд┐рдирд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред


 Create procedure [GA].[Get_landingPage_session] @Date_start date ='2019-01-01', @Date_End date ='2019-08-01' as drop table if exists #GA_session create table #GA_session ( [date] date, landingPagePath nvarchar(max), [sessions] int ) declare @Rscript nvarchar(max) set @Rscript =CONCAT( N' #    RStudio Sys.setenv(TZ="Europe/Berlin") library(googleAnalyticsR) #     conStr <- ''Driver={SQL Server};Server=EC2AMAZ-68OQ7JV;Database=Demo;Trusted_Connection=true'' #   <<<===     -    ds <- RxOdbcData(table="ga.token", connectionString=conStr) PathTokenFile <- paste ( getwd(),"/", ".httr-oauth" , sep="") TokenFile <- rxReadObject(ds, "ga_TokenFile") write.filename = file(PathTokenFile, "wb") writeBin(TokenFile, write.filename) close(write.filename) Sys.setenv("GA_AUTH_FILE" = PathTokenFile) #   ga_auth() #  ga_id account_list <- ga_account_list() ga_id <- account_list$viewId #    OutputDataSet <-google_analytics(ga_id, start="' , @Date_start ,N'", end="' , @Date_End ,N'", metrics = "sessions", dimensions = c("date" ,"landingPagePath")) OutputDataSet$date <- as.character(OutputDataSet$date) ' ) -- print @Rscript insert into #GA_session ([date],landingPagePath,[sessions]) EXECUTE sp_execute_external_script @language = N'R', @script = @Rscript Select * from #GA_session order by [date] asc 

рдЪреЗрдХрд┐рдВрдЧ


 exec [GA].[Get_landingPage_session] 

рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣ рдмрд╛рдд рд╣реИред


рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ R рдХрд╛ рдЙрдкрдпреЛрдЧ SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдХрд┐рд╕реА рднреА API рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╡рд┐рдирд┐рдордп рджрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред


 -- https://www.cbr-xml-daily.ru Declare @script nvarchar(max) set @script = N' encoding = "utf-8" Sys.setlocale("LC_CTYPE", "russian") Sys.setenv(TZ="Europe/Berlin") library(httr) url <- "https://www.cbr-xml-daily.ru/daily_json.js" resp <- GET(url) library(jsonlite) Response <- fromJSON(content(resp, as = "text")) OutputDataSet <- data.frame(matrix(unlist(Response$Valute$USD), nrow=1, byrow=T),stringsAsFactors=FALSE) OutputDataSet <- rbind(OutputDataSet,data.frame(matrix(unlist(Response$Valute$EUR), nrow=1, byrow=T),stringsAsFactors=FALSE)) ' EXEC sp_execute_external_script @language = N'R' , @script = @script with result SETS UNDEFINED 

рдпрд╛ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рдПрдкреАрдЖрдИ, рдСрд╕реНрдЯреНрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рдХреБрдЫ рдЦреЗрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ ...


 -- https://dev.socrata.com/ Declare @script nvarchar(max) set @script = N' library(httr) url <- "https://data.ct.gov/resource/y6p2-px98.json?category=Fruit&item=Peaches" resp <- GET(url) library(jsonlite) Response <- fromJSON(content(resp, as = "text")) OutputDataSet <- as.data.frame(Response) OutputDataSet <- OutputDataSet [, c("category" , "item" , "farmer_id" , "zipcode" , "business" , "l" , "location_1_location", "location_1_city" , "location_1_state" , "farm_name", "phone1" , "website", "suite")] ' EXEC sp_execute_external_script @language = N'R' , @script = @script with result SETS UNDEFINED 

рдХреБрд▓ рдореЗрдВ:


тЧП рдХрдиреЗрдХреНрд╢рди рдкрд╛рд╕рд╡рд░реНрдб рдХрд╣реАрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИрдВ
тЧП рдЕрдзрд┐рдХрд╛рд░ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦрд╛рддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
тЧП рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдирд╣реАрдВ
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдпреБрдХреНрдд тЧП рдХреЛрдИ рдкрд╛рдпрдерди рдкрд╣реЗрд▓рд┐рдпреЛрдВ
тЧП рд╕рднреА рдХреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреИрдХрдЕрдк рд╣реЛрдиреЗ рдкрд░ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ


MS SQL 2017 рдбреЗрдЯрд╛рдмреЗрд╕ рдмреИрдХрдЕрдк рдкреВрд░реНрдг рдХреЛрдб рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ
(рдкреНрд▓реЗрдмреИрдХ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рдЕрдзрд┐рдХрд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ, рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)

Source: https://habr.com/ru/post/hi466589/


All Articles