-
Notifications
You must be signed in to change notification settings - Fork 2
/
R backup UA odeslání dat v souborech CSV do Google big query.R
94 lines (65 loc) · 2.99 KB
/
R backup UA odeslání dat v souborech CSV do Google big query.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Cíl skriptu: Přeposlat data ve formě CSV ze zálohovacího skriptu Universal analytics do Google big query
# Autor: Marek Lecián
# Kontakt: [email protected]
# Licence Creative Commons Attribution-ShareAlike 4.0 International - Uveďte autora, Zachovejte licenci. .
# 2024-04-04
# ------------------------------------------------
# ----- Instalace balíčku potřebných k backupu ---
# ------------------------------------------------
#auto instalace baliceku, kdyz chybi
list.of.packages <- c("googleAuthR","bigrquery","stringr")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
library(googleAuthR)
library(stringr)
library("bigrquery")
# ------------------------------------------------
# ----- Přihlášení do Google --------------------
# ------------------------------------------------
bigrquery::bq_auth()
# ------------------------------------------------
# ----- Nastavení --------------------------------
# ------------------------------------------------
# Nastavení projektu a datové sady BigQuery
project_id <- "Google-cloud-project-name" # Google cloud project name
#dataset ID > je potřeba si v projektu v big query vytvořit dataset a pak ho sem zadat
dataset_id <- "ua_vasedomena_backup"
# Regulární výraz pro najítí všech souborů k uploadu do BQ.
filenames <- list.files(pattern = ".*ua_.*csv")
# Regulární výraz, změňte dle potřeby, má najít soubory co chcete poslat do BQ.
# test jestli to najde soubory, které chcete
for (filename in filenames) {
# Získání názvu tabulky
table_name <- gsub("(_20).*.csv", "", filename)
print(table_name)
}
# Pokud to jsou soubory co chceš poslat do BQ, stačí spustít následující skript.
# Pokud ne, uprav předešlý regulární výraz
for (filename in filenames) {
# Získání názvu tabulky
table_name <- gsub("(_20).*.csv", "", filename)
print(table_name)
rm(dates);rm(start_date);rm(end_date);
dates <- str_match_all(filename, "(?<=_)([0-9]{4}-[0-9]{2}-[0-9]{2})(?=[_.]).")
start_date <- gsub("[-_.]", "", dates[[1]][1])
end_date <- gsub("[-_.]", "", dates[[1]][2])
print(paste("Start date:", start_date))
print(paste("End date:", end_date))
rm(df_upload)
df_upload<-read.csv(filename, header = TRUE, fileEncoding = "UTF-8")
print(filename)
rm(bq_ua_data)
bq_ua_data <- bq_table(bq_dataset(project_id,
dataset_id),
table_name)
bq_table_create(
bq_ua_data,
fields = df_upload,
friendly_name = table_name,
description = paste("Data z Universal analytics, stáhnute skriptem od Marek Lecian ", filename),
labels = list(input = "universal_analytics", "createdby" = "marek_lecian", backupdatestart=start_date,backupdateend=end_date, backupdate = strftime(as.POSIXlt(Sys.time(), "UTC") , "%Y-%m-%d"))
)
print("table created")
bq_table_upload(bq_ua_data, df_upload)
print("table uploaded")
}