Firebird is an open-source relational database management system that runs on multiple platforms.
Authorize Connection to Firebird
Before you can create a data source, authorize Dataddo to connect to your Firebird database.
Prerequisites
- A running Firebird instance reachable from the internet via a public IP or hostname, or reachable through an SSH tunnel (see below).
- A database user with read access to the tables you want to extract.
- Your firewall configured to allow Dataddo's IP addresses. See Network ACL.
Create the authorizer
- In Dataddo, go to Authorizers and click Authorize New Service.
- Select Firebird.
- Fill in the connection details:
| Field | Details |
|---|---|
| Label | A name for this authorizer in Dataddo. |
| Server IP or Hostname | Public IP or Hostname of your Firebird Server. |
| Database | Name of the database you will use for writing or reading the data. |
| Charset | Charset you will use for writing or reading the data. Default: UTF8. |
| Username | Username for authentication. |
| Password | Password for authentication. |
| Port | Port to connect to Firebird. The default value is 3050. |
| TLS/SSL Settings | Keep the value on PREFERRED, this will ensure using the SSL connection when available. If you are using a self-signed certificate, please use SKIP VERIFY |
- (Optional) To reach a database that is not exposed to the internet, enable Use SSH tunnel and select a tunnel (see Connect via SSH tunnel below).
- Click Save. Dataddo validates the connection before the authorizer is created.
Connect via SSH tunnel
If your database is not exposed to the public internet, connect through an SSH bastion (jump) server.
- Go to Settings > Security, open the SSH Tunnels tab, and click Create SSH Tunnel.
- Fill in the tunnel details:
- Label - a name for the tunnel.
- SSH Server IP or Hostname - the public IP or hostname of your bastion server; allow Dataddo's IPs in its firewall.
- SSH Server Port - usually
22. - SSH Server Username.
- SSH Server Password - or leave it empty and attach a Certificate for key-based authentication (recommended).
- Save the tunnel, then select it in the Use SSH tunnel field of the authorizer.
For more detail, see Secure Data Transfer with SSH Tunneling.
Capabilities
Firebird supports the data extraction methods below. Each method differs in which row changes it captures and how much load it places on the source. Choose the one that matches your table and use case; for a full explanation and setup detail, see Database Replication.
| Method | New rows | Updated rows | Deleted rows | Details |
|---|---|---|---|---|
| Table Replication by Timestamp | Yes | Yes | No | Tracks a datetime column (such as updated_at) and re-extracts a row whenever that timestamp advances. Low to medium load on the source. |
| Table Replication by Row Sequence | Yes | No | No | Tracks a continuously increasing numeric column (such as an auto-increment ID) to capture inserts only. Low load on the source, and supports an optional per-run row limit for very large tables. |
| Log-based Replication (CDC) | - | - | - | Not available for this connector. |
| Custom SQL Query | Depends on query | Depends on query | Depends on query | Runs your own SQL query, so you control exactly which rows and columns are returned, including joins, filters, and aggregation. |
How the Incremental Methods Track Changes
The two incremental methods track progress differently:
- Table Replication by Timestamp extracts the rows whose Change Tracking Column falls inside the source's relative date range (for example "last 24 hours"), and that window moves forward with the current date. A row re-enters the window whenever its timestamp is refreshed, which is how updates are captured. Two practical consequences: the tracking column must be set on insert and refreshed on every update (such as
updated_at), and the window must be at least as wide as the gap between two runs, otherwise rows changed in between are missed. - Table Replication by Row Sequence remembers the highest value of the Sequence Tracking Column(s) extracted so far, and each run continues from that value. The first run starts from the beginning of the table. The optional Row limit per run caps one run's size, so the initial load of a very large table can be split across several scheduled runs.
- In both methods, your optional WHERE clause is combined with the automatic tracking filter, so do not repeat the time or sequence condition in it.
How to Create a Firebird Data Source
- In Dataddo, go to Sources > Create Source and select the Firebird connector.
- Choose the Authorizer you created above.
- Select the extraction method that fits your use case (see the Capabilities table above).
- Fill in the required fields for the selected method, such as the schema, table, and columns.
- For the incremental methods, select the tracking column: the Change Tracking Column (a datetime column such as
updated_at) for Table Replication by Timestamp, or the Sequence Tracking Column(s) (a strictly increasing numeric column such as an auto-increment ID) for Table Replication by Row Sequence. - (Optional) Add a WHERE clause to filter the extracted rows. Do not repeat the time or sequence condition in it; Dataddo adds the tracking filter automatically.
- Click Test Data to preview the result, then click Save.
Troubleshooting
A column is missing or the source fails on an unsupported data type. Cast the column to a supported type using a Custom SQL Query, for example SELECT CAST(my_column AS VARCHAR) AS my_column FROM my_table.
The data preview is empty. This is usually caused by one of the following:
- the selected date range contains no data;
- the database user does not have permission to read the selected table;
- the selected table, columns, or tracking column are no longer valid;
- an incompatible combination of options was selected.
Related Articles
- Database Replication - detailed description and setup of every extraction method.
- Secure Data Transfer with SSH Tunneling - connect to a private database through a bastion.
- Network ACL - Dataddo IP addresses to allow through your firewall.