Ich verwende GridDB Cloud (kostenlos) mit dem Python-Client und muss einen Stapel von Zeilen atomar (alles oder nichts) in einen TimeSeries-Container schreiben. Ich habe Probleme herauszufinden, wie ich das automatische Festschreiben und das explizite Festschreiben/Rollback deaktivieren kann. Minimale Reproduktion:
import griddb_python as griddb
from datetime import datetime, timezone
# connect
factory = griddb.StoreFactory.get_instance()
store = factory.get_store(
host="xxx.cloud.griddb.com",
port=31999,
cluster_name="KN3yxw8u",
username="userM016Pqo8pS",
password="****",
)
# create/open timeseries
props = griddb.TimeSeriesProperties()
props.row_key = True
props.set_column_info([
("ts", griddb.Type.TIMESTAMP),
("deviceid", griddb.Type.STRING),
("temperature", griddb.Type.DOUBLE),
])
ts = store.put_time_series("TSDB", props)
# --- transaction attempt ----------------------------------------------
# Q: Where do I disable autocommit?
# ts.set_auto_commit(False) ? store.set_auto_commit(False) ?
rows = [
(datetime(2025, 9, 1, 0, 0, tzinfo=timezone.utc), "dev-001", 25.0),
(datetime(2025, 9, 1, 1, 0, tzinfo=timezone.utc), "dev-001", 26.0),
]
try:
# try to batch insert
for r in rows:
ts.put(r)
# simulate a failure before commit
raise RuntimeError("boom")
ts.commit() # expect not to reach here
except Exception:
# I expected no rows to be visible after this
ts.rollback()
# Observed: after the exception, the new rows are visible,
# which makes it appear as though autocommit was enabled.
Frage:
Wie deaktiviere ich Autocommit und verwende explizit commit()/rollback() mit dem Python GridDB-Client für einen TimeSeries-Container? Was ist das richtige aufzurufende Objekt/die richtige Methode (Container vs. Store) und gibt es etwas Besonderes für TimeSeries? Umgebung:
GridDB Cloud (kostenlos)
griddb_python-Client
TimeSeries-Container (ts TIMESTAMP als Zeilenschlüssel)
Ich verwende GridDB Cloud (kostenlos) mit dem Python-Client und muss einen Stapel von Zeilen atomar (alles oder nichts) in einen TimeSeries-Container schreiben. [url=viewtopic.php?t=18848]Ich habe Probleme[/url] herauszufinden, wie ich das automatische Festschreiben und das explizite Festschreiben/Rollback deaktivieren kann. [b]Minimale Reproduktion:[/b] [code]import griddb_python as griddb from datetime import datetime, timezone
try: # try to batch insert for r in rows: ts.put(r)
# simulate a failure before commit raise RuntimeError("boom")
ts.commit() # expect not to reach here except Exception: # I expected no rows to be visible after this ts.rollback()
# Observed: after the exception, the new rows are visible, # which makes it appear as though autocommit was enabled. [/code] [b]Frage:[/b] Wie deaktiviere ich Autocommit und verwende explizit commit()/rollback() mit dem Python GridDB-Client für einen TimeSeries-Container? Was ist das richtige aufzurufende Objekt/die richtige Methode (Container vs. Store) und gibt es etwas Besonderes für TimeSeries? [b]Umgebung:[/b] [list] [*]GridDB Cloud (kostenlos) [*]griddb_python-Client [*]TimeSeries-Container (ts TIMESTAMP als Zeilenschlüssel) [/list]
Ich habe den folgenden Polarscode, der eine Parquetdatei liest und sie in eine SQLite -Datenbank schreibt:
data = pl.scan_parquet(get_dataset_path()).collect()
_ = data.write_database(
table_name=...
Ich baue eine Flutter-App, die NDEF nur dann lesen/schreiben soll, wenn der Benutzer auf eine Schaltfläche tippt. Auf Samsung (auch SM-S918B, Galaxy S23 Ultra und Galaxy Note10+) „ergreift“ die...
In einer C#-Desktopanwendung habe ich zwei verwandte DataGridViews (dgvAlgorithm und dgvParameter) und eine Schaltfläche zum Speichern von Änderungen (btnSave). Beide DataGridViews beziehen sich auf...
Ich habe gerade Tage, buchstäblich, ~ 25 Stunden Arbeit verloren, weil ich versuchte, meinen Code über etwas Einfaches zu debuggen, das ich beim Herstellen eines Feuerscheibe Hexacopter BattleBot...