Я настраиваю базу данных Cassandra и пытаюсь создать таблицы с хеш-кодом MD5 в качестве имени таблицы.Когда я делаю это, я получаю исключение com.datastax.oss.driver.api.core.servererrors.SyntaxError: line 1:35 mismatched character '2' expecting '-'
.
Мой запрос:
CREATE TABLE IF NOT EXISTS 77f2d6b127b7d4a89a940d0829ff1e672afb4362_status (
jsonSchema TEXT,
onlineStatus INT,
key text,
timestamp timeuuid,
primary key(key, timestamp)
) WITH CLUSTERING ORDER BY (timestamp DESC)
AND compaction = {'class': 'TimeWindowCompactionStrategy',
'compaction_window_size': 1,
'compaction_window_unit': 'DAYS'};
И исключение:
Caused by: com.datastax.oss.driver.api.core.servererrors.SyntaxError: line 1:35 mismatched character '2' expecting '-'
at com.datastax.oss.driver.api.core.servererrors.SyntaxError.copy(SyntaxError.java:48)
at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:113)
at com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:53)
at com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:30)
at com.datastax.oss.driver.internal.core.session.DefaultSession.execute(DefaultSession.java:207)
at com.datastax.oss.driver.api.core.CqlSession.execute(CqlSession.java:47)
at com.datastax.oss.driver.api.core.CqlSession.execute(CqlSession.java:56)
Интересно, почему это происходит.Согласно https://docs.datastax.com/en/archived/cql/3.3/cql/cql_reference/ref-lexical-valid-chars.html запрос должен иметь правильный синтаксис.
Что я пробовал
Двойные кавычки
Это работает, когда я ставлю имя таблицы вдвойные кавычки (CREATE TABLE IF NOT EXISTS "77f2d6b127b7d4a89a940d0829ff1e672afb4362_status" (...
, но у меня возникают проблемы с IDE базы данных IntelliJ, потому что он не запрашивает базу данных, используя двойные кавычки для имен таблиц.
Начинайте имя таблицы с буквы ([az])
Когда я добавляю перед именем таблицы вручную букву (а не число; например, a77f2d6b127b7d4a89a940d0829ff1e672afb4362_status
), таблица создается, но я получаю еще одно исключение тайм-аута:
com.datastax.oss.driver.api.core.DriverTimeoutException: Query timed out after PT2S
at com.datastax.oss.driver.api.core.DriverTimeoutException.copy(DriverTimeoutException.java:34)
at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:113)
at com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:53)
at com.datastax.oss.driver.internal.core.cql.CqlRequestSyncProcessor.process(CqlRequestSyncProcessor.java:30)
at com.datastax.oss.driver.internal.core.session.DefaultSession.execute(DefaultSession.java:207)
at com.datastax.oss.driver.api.core.CqlSession.execute(CqlSession.java:47)
at com.datastax.oss.driver.api.core.CqlSession.execute(CqlSession.java:56)
Послеисключение тайм-аута я могу выполнить тот же запрос снова. На этот раз без ошибок -> таблица была успешно создана.
Я использую следующий драйвер Java: [Maven: com.datastax.oss:java-driver-core:4.0.1]
Любая помощь большечем добро пожаловать.