View source: R/update_snapshot.R
update_snapshot | R Documentation |
update_snapshot()
makes it easy to create and update a historical data table on a remote (SQL) server.
The function takes the data (.data
) as it looks on a given point in time (timestamp
) and then updates
(or creates) an remote table identified by db_table
.
This update only stores the changes between the new data (.data
) and the data currently stored on the remote.
This way, the data can be reconstructed as it looked at any point in time while taking as little space as possible.
See vignette("basic-principles")
for further introduction to the function.
update_snapshot(
.data,
conn,
db_table,
timestamp,
filters = NULL,
message = NULL,
tic = Sys.time(),
logger = NULL,
enforce_chronological_order = TRUE,
collapse_continuous_records = FALSE
)
.data |
( |
conn |
( |
db_table |
( |
timestamp |
( |
filters |
( |
message |
( |
tic |
( |
logger |
( |
enforce_chronological_order |
( |
collapse_continuous_records |
( |
The most common use case is having consecutive snapshots of a dataset and wanting to store the changes between
them. If you have a special case where you want to insert data that is not consecutive, you can set the
enforce_chronological_order
to FALSE
. This will allow you to insert data that is earlier than the latest
time stamp.
If you have more updates in a single day and use Date()
rather than POSIXct()
, as your time stamp, you
may end up with records where from_ts
and until_ts
are equal. These records not normally accessible with
get_table()
and you may want to prevent these records using collapse_continuous_records = TRUE
.
No return value, called for side effects.
filter_keys
conn <- get_connection()
data <- dplyr::copy_to(conn, mtcars)
# Copy the first 3 records
update_snapshot(
head(data, 3),
conn = conn,
db_table = "test.mtcars",
timestamp = Sys.time()
)
# Update with the first 5 records
update_snapshot(
head(data, 5),
conn = conn,
db_table = "test.mtcars",
timestamp = Sys.time()
)
dplyr::tbl(conn, "test.mtcars")
close_connection(conn)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.