Storage types
GraphRAG uses storage in four main areas:Input storage
Where source documents are read from
Output storage
Where processed artifacts are written
Cache storage
Where LLM responses are cached
Vector storage
Where embeddings are stored for search
Input storage
Configure where GraphRAG reads source documents:File storage (default)
input/ directory:
Azure Blob Storage
Azure Cosmos DB
Output storage
Configure where GraphRAG writes processed artifacts:File storage (default)
Azure Blob Storage
Azure Cosmos DB
Update output storage
For incremental indexing, specify a separate output location:This preserves original outputs when re-indexing with updated data.
Cache storage
Caching stores LLM responses to avoid redundant API calls:JSON cache (default)
Memory cache
For temporary caching (not persisted):Disable caching
Azure Blob cache
Azure Cosmos DB cache
Vector storage
Configure where embeddings are stored for similarity search:LanceDB (default)
Azure AI Search
Azure Cosmos DB
Custom index schema
Customize field names and vector sizes:Name for the embedding index/table
Field name for document IDs
Field name for embedding vectors
Dimension of embedding vectors (must match model)
Reporting storage
Configure where pipeline logs and reports are written:File reporting (default)
Azure Blob reporting
Storage parameters
Common parameters
Storage backend:
file, blob, memory, or cosmosdbCharacter encoding for file operations
Base directory for file storage (relative to project root)
Azure Blob parameters
Azure Storage connection string (use environment variable)
Name of the blob container
Storage account blob URL
Azure Cosmos DB parameters
Cosmos DB connection string (use environment variable)
Name of the Cosmos container
Name of the Cosmos database
Cosmos DB account URL
Example: Full Azure configuration
Using Azure services for all storage:Example: Hybrid configuration
Using local files for development with cloud caching:Best practices
Use environment variables for credentials
Use environment variables for credentials
Never commit connection strings or API keys to version control. Store them in
.env files and reference with ${VAR_NAME} syntax.Enable caching for development
Enable caching for development
Use JSON file cache during development to avoid redundant API calls. Consider blob cache for team sharing.
Separate production and test storage
Separate production and test storage
Use different containers/directories for production and testing to prevent data mixing.
Monitor storage costs
Monitor storage costs
Azure Blob and Cosmos DB incur storage and transaction costs. Monitor usage and consider file storage for development.
Back up cache and outputs
Back up cache and outputs
Cache files can save significant API costs. Back them up before clearing or re-indexing.
Next steps
Caching
Learn more about cache configuration and optimization
Settings reference
Complete configuration options
LLM models
Configure language models
Start indexing
Begin processing documents