Esri File Geodatabase (.gdb) — Open Without ArcGIS Pro: OpenFileGDB, Architecture, and OSM Export

2026-04-018 min read
FileGDBGDBEsriArcGISOpenFileGDBGDAL

Esri File Geodatabase, or FileGDB for short, is a directory with the .gdb extension that contains dozens of binary files: .gdbtable (tables), .gdbtablx (indexes), .spx (spatial index), .atx (attribute index), .freelist. Since 2009 it has been the native format of ArcGIS Desktop, replacing the legacy Personal Geodatabase (.mdb based on Microsoft Access). FileGDB removes Shapefile's limits: up to 1 TB per table, up to 1 billion rows, column names up to 64 characters, native NULL values, support for topology, domains, sub-types, relationship classes, and attachments. Esri keeps the spec closed, but in 2014 Even Rouault reverse-engineered the format for GDAL — the OpenFileGDB driver. Since GDAL 3.6 (November 2022) OpenFileGDB reads and writes FileGDB without any Esri SDK dependency. That's critical for open-source workflows: QGIS 3.28+ opens and saves .gdb directly, for free, without an ArcGIS Pro purchase.

Map generation of Yaroslavl city center

History: from Personal GDB to OpenFileGDB

Esri geodatabases evolved through three generations. First — Personal Geodatabase (.mdb) introduced in ArcGIS 8 (1999) on top of Microsoft Access. 2 GB file limit, Windows-only, slow on large volumes. Second — Enterprise Geodatabase (ArcSDE) over PostgreSQL/Oracle/SQL Server, for teams. Third — File Geodatabase, introduced in ArcGIS 9.3.1 (2009): a directory of files, cross-platform, no DBMS dependency.

Since the 2009 release Esri has published the FileGDB SDK — a binary library for C++/Java/.NET that reads and writes .gdb to the full specification. The SDK license is free for read+write but proprietary: source closed, ships only for x86_64 Windows/Linux/macOS, no ARM. Open-source GIS tools depended on the Esri SDK for years via the GDAL/OGR FileGDB driver — which technically worked but didn't deliver real freedom.

In 2014 Even Rouault (chief GDAL maintainer) launched OpenFileGDB — a from-scratch reverse-engineering effort. Version 1.0 (read-only) appeared in GDAL 1.11 (2014). By GDAL 3.0 (2019) OpenFileGDB supported most FileGDB 10.x. And critically — since GDAL 3.6 (November 2022) OpenFileGDB learned to write FileGDB, finally making ArcGIS Pro optional. That allowed QGIS 3.28+ (LTR) to fully create and edit .gdb without any Esri license.

Architecture: dozens of files in one directory

Open a .gdb directory — inside you'll typically find 20–50 files with short names like a00000001.gdbtable, a00000001.gdbtablx, a00000002.gdbtable. Esri hides real feature class names behind hex IDs. Each feature class in a GDB is at minimum a pair of files: .gdbtable (table data — attributes + WKB geometry) and .gdbtablx (rowindex table).

Additional indexes: - .spx — spatial index (Esri's grid index, an R-tree analog) - .atx — attribute index (a B-tree over one column for fast WHERE) - .freelist — list of freed rowindex slots for reuse - .fdscope — feature dataset metadata (if any)

The root table a00000001.gdbtable always holds metadata: the list of all feature classes, their attributes, CRS, topologies, domains, relationship classes. It's an analog of geometry_columns in PostGIS, but with a far broader schema.

Mermaid diagram: flowchart TD

Map generation of Dubai city center

Two paths: FileGDB SDK vs OpenFileGDB

From GDAL's perspective there are two different drivers for one format:

FileGDB driver (legacy, proprietary). Uses the Esri FileGDB SDK. Full support: read+write for every FileGDB version including 10.x with topology, domains, sub-types, relationship classes. Requires installing the SDK separately (~50 MB download from Esri Developer Portal), linked at GDAL build time. Not bundled in QGIS installs out of the box — needs third-party builds. SDK unavailable on ARM-Linux.

OpenFileGDB driver (modern, open-source). Reverse-engineered implementation. Since GDAL 3.6 (November 2022) supports reading and writing FileGDB 10.x. Doesn't support: writing relationship classes (read-only), complex topologies, ArcGIS Replica metadata, some niche ArcGIS 11.x feature types. Sufficient for 95% of "export-import-edit" workflows.

Which to pick? If your codebase has a legacy ArcGIS dependency — work through the FileGDB SDK for compatibility. If you're building a new open-source pipeline — OpenFileGDB. On osm2cdr.ru we use OpenFileGDB for native export without Esri dependencies.

Use cases

Municipal GIS planning. City departments commonly standardize on ArcGIS Pro, and an OSM basemap in FileGDB integrates directly into MapDocument (.mxd / .aprx) projects. Buildings, roads, and water layers flow into the pipeline without conversions.

Utility infrastructure: gas, electricity, water. US utilities (PG&E, AT&T) and Russian ones (Rosseti, Gazprom) often build ESRI stacks on FileGDB with topology rules: "road does not self-intersect", "building does not overlap building". Importing OSM context as FileGDB simplifies engineering workflows.

Geomarketing, retail, banking. Major banks (Sber, VTB) and retailers (X5, Magnit) run location analysis in ArcGIS Pro. An OSM basemap as FileGDB is standard input for their workflow.

Educational institutions. Universities with GIS courses most often teach ArcGIS Pro (thanks to Esri Education licensing). Students receive basemaps as FileGDB-ready teaching materials.

Government contractors. Government contracts for state land cadastre or environmental work often require FileGDB delivery — written into the technical specification.

Software

ArcGIS Pro. Paid (from 700 USD/year, academic license cheaper). The reference environment for FileGDB. Full support for every object type, topology, domains, sub-types, relationship classes, attachments. Windows only.

QGIS 3.28 LTR+. Free, cross-platform. Through OpenFileGDB reads and writes FileGDB. Supports most practical operations except editing relationship classes and complex topologies.

FME (Safe Software). Paid enterprise ETL tool. Full FileGDB support via FileGDB SDK. Frequently used for conversions between FileGDB and other formats.

ogr2ogr (GDAL). Free CLI. Example: ogr2ogr -f OpenFileGDB output.gdb input.geojson. Since GDAL 3.6+ creates .gdb without Esri dependencies.

ArcGIS Online / ArcGIS Enterprise. Don't read FileGDB directly as a service, but import via the ArcGIS Pro publish workflow.

Strengths and weaknesses

Strengths. Removes all Shapefile limits (2 GB, 10-char field names, no NULL). Topology, domains, sub-types, relationship classes — data structures absent from open-source formats. Strong performance on big volumes (terabytes with billions of rows). Spatial and attribute indexes built in. Cross-platform — works the same on Windows/Linux/macOS.

Weaknesses. Proprietary closed format from Esri. Full support only in ArcGIS Pro; OpenFileGDB covers 95%, not 100%. Directory of files — easy to damage (deleting one file) or mis-zip. Binary format — not openable in a text editor, not git-diffable. Weak support in browser-based GIS and web mapping.

Pipeline in OSM2CDR

Our filegdb_exporter.py uses QGIS QgsVectorFileWriter with the "OpenFileGDB" driver (not "FileGDB" — we deliberately avoid the Esri SDK dependency). Input: OSM layers from PostGIS via WKB fast-path. Output: a ZIP archive containing the .gdb directory.

CRS comes from the user's pick among 165 supported systems. FileGDB supports every standard EPSG code, including 122 Gauss-Kruger zones keyed to Russian MSK numbers — an approximation, not the true MSK of a subject; the parameters of 222 real zones across 75 MSK numbers, each with a named source and confidence class, are computed by the coordinate converter. The CRS is written into a00000004.gdbtable (the system SRS table) and auto-detected on ArcGIS Pro import.

One export = one FileGDB = several feature classes (one per geometry type: buildings_polygon, roads_line, pois_point, water_polygon and so on). Feature class names mirror OSM categories, translated to ArcGIS-compatible names (Latin only, up to 64 characters).

Map generation of Saint Petersburg city center

FAQ

Why .gdb if GeoPackage exists? GeoPackage is an OGC standard, cross-platform, free, single file. FileGDB is the ArcGIS standard, proprietary, directory-based, but supports topology, domains, and relationship classes that GeoPackage doesn't. If your workflow centers on ArcGIS Pro — pick FileGDB. If open-source — GeoPackage.

Do I need ArcGIS Pro to open a .gdb? No. QGIS 3.28 LTR and newer reads and writes FileGDB through OpenFileGDB for free. So do GDAL ogr2ogr, FME, and tools built on top of them.

Can I edit FileGDB in QGIS? Yes, starting with QGIS 3.28 LTR (via the OpenFileGDB driver with GDAL 3.6+). You can add, delete, modify features. Limits: relationship classes and complex topology rules aren't editable in QGIS yet — only in ArcGIS Pro.

What's the max FileGDB size? Specification — up to 1 TB per feature class and up to 1 billion rows. Practical limit usually relates to SSD random-read performance (.gdbtable is a random-access pattern).

Can I unzip a .gdb like a regular archive? No. .gdb is a filesystem directory, not a ZIP. To transfer over network, archive the directory into ZIP/7z/tar. On osm2cdr.ru we already deliver FileGDB as a ZIP with the directory inside.

Sources

← All articles