📊 Export for Analytics
geol can export lifecycle data to portable database formats that can be used with analytics, reporting, and ETL tools.
Supported export formats include:
- DuckDB
- SQLite
The exported data can be queried using SQL and integrated with a wide range of analytics platforms.
🦆 Export to DuckDB
Export the complete endoflife.date dataset to a DuckDB database.
geol export
This command creates a geol.duckdb file containing structured lifecycle data from endoflife.date.
The exported database contains multiple tables, including products, categories, and tags.
🗄️ Export to SQLite
Export the complete endoflife.date dataset to a SQLite database.
geol export sqlite
This command creates a portable SQLite database that can be queried using standard SQL tools.
SQLite is well suited for lightweight applications, embedded systems, and portable analytics workflows.
⚙️ Install Required Tools
DuckDB
Install DuckDB with Homebrew:
brew install duckdb
See the official installation guide:
SQLite
Check whether SQLite is available:
sqlite3 --version
Install SQLite if needed:
brew install sqlite
See the official download page:
🔍 Query Exported Data
DuckDB Examples
Display help:
duckdb -help
Run a query without opening the interactive shell:
duckdb geol.duckdb -c "select * from tags;"
This is useful for scripts and quick data checks.
Open the interactive DuckDB shell:
duckdb geol.duckdb
List available tags:
from tags;
Count products:
select count(*) from products;
SQLite Examples
Run a query without opening the interactive shell:
sqlite3 geol.db "SELECT * FROM products LIMIT 10;"
Use -header and -column for improved readability:
sqlite3 -header -column geol.db "SELECT * FROM products LIMIT 10;"
Open the SQLite shell:
sqlite3 geol.db
List tables:
.tables
Display a table schema:
.schema products
Count products:
SELECT COUNT(*) FROM products;
Exit SQLite:
.quit
📚 Generate Database Documentation
SchemaCrawler can generate documentation and diagrams from the exported database.
Project page:
https://github.com/schemacrawler/SchemaCrawler
Install SchemaCrawler
brew tap schemacrawler/homebrew-tap
brew install --formula schemacrawler
Install Graphviz
brew install graphviz
Graphviz is required to generate PNG schema diagrams.
Generate a Schema Diagram
schemacrawler \
--url="jdbc:duckdb:geol.duckdb" \
--command=schema \
--info-level=standard \
--output-format=png \
--output-file=geol_duckdb_chart.png
This command generates a visual diagram showing tables and relationships.
Generate HTML Documentation
schemacrawler \
--url="jdbc:duckdb:geol.duckdb" \
--command=schema \
--info-level=standard \
--output-format=htmlx \
--output-file=geol_duckdb_doc.html
The generated HTML documentation provides detailed information about tables and columns.
🔗 Integration Examples
The exported database can be integrated with many tools:
- Python / Pandas
- Jupyter Notebooks
- Tableau
- Power BI
- Apache Airflow
- dbt
Example with Python:
import duckdb
con = duckdb.connect("geol.duckdb")
df = con.execute(
"SELECT * FROM products WHERE eol_date < CURRENT_DATE"
).df()
print(f"Found {len(df)} products past EOL")
📹 Additional Resources
Exploring DuckDB with Quarto
Using SQLite with geol
📈 Export to Other Formats
DuckDB supports exporting data to additional formats.
Export to CSV:
COPY (SELECT * FROM products)
TO 'products.csv'
(HEADER, DELIMITER ',');
Export to Parquet:
COPY products
TO 'products.parquet'
(FORMAT PARQUET);
Export to JSON:
COPY (SELECT * FROM products LIMIT 100)
TO 'products.json'
(FORMAT JSON);
💡 Use Cases
Typical use cases include:
- Proactive lifecycle monitoring
- Compliance reporting
- Technology inventory management
- Vendor analysis
- Risk assessment
- Dashboard and reporting solutions