I used firebird-driver yesterday to build a 22M record table and execute queries against it. It works very well.
I especially love parameterized statements in this form:
cur.execute("insert into the_table (a,b,c) values (?,?,?)", ('aardvark', 1, 0.1))
The data source for building my table had timestamps in string format and Python automagically converted the format for me.
Kudos to the devs for building firebird-driver.
As far as firebird itself, I had some permission issues getting Firebird set up, (my bad) but now that I have that sorted out, it works very well.
I'm using dbeaver as the gui for my work. It seems to work well too.
I haven't done serious DB work in ~10 years. I'm very happy with these tools.