Provides a common interface to time series databases. The objective is to define a standard interface so users can retrieve time series data from various sources with a simple, common, set of commands, and so programs can be written to be portable with respect to the data source. The SQL implementations also provide a database table design, so users needing to set up a time series database have a reasonably complete way to do this easily. The interface provides for a variety of options with respect to the representation of time series in R. The interface, and the SQL implementations, also handle vintages of time series data (sometime called editions or real-time data). There is also a (not yet well tested) mechanism to handle multilingual data documentation. Comprehensive examples of all the 'TS*' packages is provided in the vignette Guide.pdf with the 'TSdata' package.
TSdbi attempts to provide a common R interface (API) to time series databases. It also helps provide some backend implementations of SQL tables, etc., and an interface to Fame and some other sources of time series data. It should be fairly simple to implement any SQL database having a DBI package plug (e.g. ROracle). The current SQL implementation supports annual, quarterly, monthly, semiannual, weekly, daily, business day, minutely, irregular data with a date, and irregular data with a date and time. This may be constrained by the backend (e.g. Fame does not support all these types.) My own work tends to be with the first three, so others have not been tested as extensively. It should be relatively easy to implement other types of time series data in the SQL backends (suggestions and examples?). Series documentation is supported in a meta table. (Multilingual support is not yet implemented, but should not be too difficult.) The design also (optionally) supports vintages and panels of data (e.g. series with the same identifier but a different release date or country). The vintage feature is fairly well tested, but panels have had less attention. The R time series representation can optionally be specified. The default is ts were possible and zoo elsewhere. The TSdbi package provides the common parts of the interface. To use this package it is necessary to also have one of the database specific packages, such as TSMySQL, TSSQLite, or TSfame. More extensive vignette examples are provided in each of those packages. (The vignettes are very similar, but they will not build properly without one of the database specific packages.) BULK LOADING For the SQL backends, tests and examples setup SQL tables using code in the file inst/TSsql/CreateTables.TSsql, and very small datasets are loaded into these tables. Loading large datasets using the R interface may be slow (I have not attempted). Performance for reading data seems fairly reasonable, at least in my test database of about 800,000 series, mostly monthly, quarterly and annual (but this may be small by financial data standards). Typically one might load a large dataset using a database specific client and the commands for loading a csv file or something similar. In this case the tables can be setup with the database specific client, but the table names and fields specified in inst/TSsql/CreateTables.TSsql should be respected. I am in the process of generalizing some of my scripts and Makefiles to provide examples for this. See the TO DO section in the NEWS file for possible extensions.