Я использую клиент GridDB Python для запроса контейнера, в котором определенно есть строки, но мой запрос возвращает пустой набор результатов. Вставки выполняются успешно, иContainer.get(row_key) работает, поэтому я уверен, что данные существуют. Среда
Сервер GridDB: 5.x
Python: 3.10
Клиент Griddb-Python установлен через pip
Тип контейнера: Коллекция (клавиша строки включена)
import griddb_python as griddb
factory = griddb.StoreFactory.get_instance()
store = factory.get_store({
"host": "192.168.1.100",
"port": 31999,
"cluster_name": "myCluster",
"username": "admin",
"password": "admin",
})
con = store.get_container("sensor_readings")
# Data exists (this returns a row)
print(con.get("device-001"))
# But this query returns an empty
query = con.query("SELECT * WHERE deviceId = 'device-001'")
rs = query.fetch()
print("has_next:", rs.has_next())
while rs.has_next():
row = rs.next()
print(row)
Я ожидаю по крайней мере одну строку для идентификатора устройства = устройство-001. Но я вижу, что
con.get("device-001") возвращает строку (поэтому контейнер не пуст)
rs.has_next() немедленно принимает значение False
Вопросы
В GridDB SQL требуется ли для предложений WHERE явное выражение FROM
Или другой синтаксис в Python?
Может ли это быть вызвано несоответствием типа столбца (например, идентификатор устройства
, хранящийся как BLOB/INTEGER или строка) или именами столбцов с учетом регистра?
Существует ли рекомендуемый способ отладки типов схемы/столбцов из
Python для подтверждения сохраненных типов?
Я использую клиент GridDB Python для запроса контейнера, в котором определенно есть строки, но мой запрос возвращает пустой набор результатов. Вставки выполняются успешно, иContainer.get(row_key) работает, поэтому я уверен, что данные существуют. [b]Среда[/b] [list] [*]Сервер GridDB: 5.x [*]Python: 3.10 [*]Клиент Griddb-Python установлен через pip [*]Тип контейнера: Коллекция (клавиша строки включена) [/list] [b]Код[/b] [code]import griddb_python as griddb
# Data exists (this returns a row) print(con.get("device-001"))
# But this query returns an empty query = con.query("SELECT * WHERE deviceId = 'device-001'") rs = query.fetch() print("has_next:", rs.has_next())
while rs.has_next(): row = rs.next() print(row) [/code] Я ожидаю по крайней мере одну строку для идентификатора устройства = устройство-001. [b]Но я вижу, что[/b] [list] [*]con.get("device-001") возвращает строку (поэтому контейнер не пуст) [*]rs.has_next() немедленно принимает значение False [/list] [b]Вопросы[/b] [list] [*]В GridDB SQL требуется ли для предложений WHERE явное выражение FROM Или другой синтаксис в Python? [*]Может ли это быть вызвано несоответствием типа столбца (например, идентификатор устройства , хранящийся как BLOB/INTEGER или строка) или именами столбцов с учетом регистра? [*]Существует ли рекомендуемый способ отладки типов схемы/столбцов из Python для подтверждения сохраненных типов? [/list]