This is not entirely correct:
-
SQLite is for single user only If you want high write concurrency, then I agree it is not a viable choice[1]. But it can have multiple read-only readers, even across processes[2]. So multiple users can be accessing a single, large Sqlite3 database if read-only. A viable scenario would be to put a large Sqlite3 database into shared cloud filesystem, like Amazon EFS, then multiple users on separate, appropriately sized compute instances (i.e. EC2) could mount the filesystem to do their read-only analysis.
-
I don’t think it can support very large databases (e.g. > 1 TB) Sqlite3 supports databases up to 281PB [3] and there many real world examples of production, multi-PB sized Sqlite3 databases[4].
-
It doesn’t support DATE and DATETIME types and operations, although SqlRender is doing its best to make it look like it does. (This does require field names end in ‘_date’ and ‘_datetime’) Sqlite3 supports DATE and DATETIME operations[5], but not types. This does not seem to be as large an issue as implied here. Many applications use these and can operate successfully with respect to time and datetime operations.
I believe that a Sqlite3 release would be useful, for the use case of read-only analysis and perhaps other use cases. Not having to set up a separate db server, and being able to copy of a database that resides in a single file, reduces the barriers to use OHDSI.
Thanks,
Glen
[1]www.sqlite.org/whentouse.html
[2]www.sqlite.org/lockingv3.html
[3]www.theregister. com/2020/08/19/sqlite_maximum_database_size_increased_281tb/
[4]www.reddit. com/r/sqlite/comments/euedur/sqlite_performance_on_large_databases/
[5]www.sqlite. org/lang_datefunc.html