DynamoDB#
The Disease Normalizer can store and retrieve disease records from a local DynamoDB database instance.
Note
See the DynamoDB handler API reference
for information on programmatic access.
Local setup#
See the instructions for deploying and running DynamoDB local in the AWS docs for server setup instructions.
By default, the Disease Normalizer expects to find a DynamoDB instance running at http://localhost:8000
. The DISEASE_NORM_DB_URL
environment variable can be used to designate an alternate location:
export DISEASE_NORM_DB_URL=http://localhost:8001
Warning
By default, DynamoDB Local serves to port 8000, which is also the port at which Uvicorn serves by default. This means that when running Disease Normalizer REST service with DynamoDB, you may have to use a different port for one of those processes. To do so with DynamoDB, use the -port
option:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -port 8001
# then, in the Disease Normalizer's environment:
export DISEASE_NORM_DB_URL=http://localhost:8001
Configuration#
By default, the DynamoDB interface uses a table named disease_normalizer
for all DB items (source records, aliases, etc, as well as metadata like source data version, licensing, etc). The environment variable DISEASE_DYNAMO_TABLE
can be used to define a different table name.
Managing persistent DynamoDB data#
DynamoDB Local will store all data in a file named shared-local-instance.db
when called with the sharedDb
flag. This file persists after the database process ends and can be shared with other users. An alternate directory can be provided with the dbPath
option if the DB file is stored in a different directory, e.g.:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -dbPath ../other_directory/
If the sharedDb
flag is not provided, then data will not persist after the DynamoDB process ends.