Не удается получить доступ к таблицам DynaModb через кластер DAX

Создан кластер [cluster name : staging-dax-cluster.ckbrjt.clustercfg.dax.use1.cache.amazonaws.com] в регионе us-east-1. Когда я пытаюсь использовать кластер, получаю следующие исключения.

Поддерживаемое ведение журнала общей библиотеки устарело. Переключитесь на бэкэнд slf4j. Приложение Cloud Watch больше не поддерживается. Используйте приложение stdOut или SLF4J.

Exception in thread "main" com.amazon.dax.client.exceptions.DaxServiceException: NotImplementedException
    at com.amazon.dax.client.dynamodbv2.ExceptionTranslator.createValidationException(ExceptionTranslator.java:91)
    at com.amazon.dax.client.dynamodbv2.ExceptionTranslator.translateException(ExceptionTranslator.java:80)
    at com.amazon.dax.client.dynamodbv2.DaxClient.handleException(DaxClient.java:1898)
    at com.amazon.dax.client.dynamodbv2.DaxClient.describeTable(DaxClient.java:610)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$21.call(ClusterDaxClient.java:328)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$21.call(ClusterDaxClient.java:325)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$RetryHandler.makeRequestWithRetries(ClusterDaxClient.java:635)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.makeReadRequestWithRetries(ClusterDaxClient.java:604)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.describeTable(ClusterDaxClient.java:325)
    at com.amazonaws.services.dynamodbv2.util.TableHelper.verifyTableExists(TableHelper.java:51)
    at com.amazonaws.services.dynamodbv2.util.TableHelper.verifyOrCreateTable(TableHelper.java:117)
    at com.amazonaws.services.dynamodbv2.transactions.TransactionManager.verifyOrCreateTransactionTable(TransactionManager.java:180)
    at com.usermind.integrations.api.dao.DynamoDbPersistenceContext.verifyOrCreateTransactionTables(DynamoDbPersistenceContext.java:151)
    at com.usermind.integrations.api.dao.DynamoDbPersistenceContext.<init>(DynamoDbPersistenceContext.java:138)
    at com.usermind.integrations.api.App.initPersistenceContext(App.java:143)
    at com.usermind.integrations.api.AbstractSparkApp.run(AbstractSparkApp.java:17)
    at com.usermind.integrations.api.App.main(App.java:93)

person Utharaa M    schedule 19.10.2017    source источник


Ответы (1)


DAX не распознает операции DynamoDB для управления таблицами, в вашем случае «describeTable». Поддерживаются операции чтения и записи. Подробнее об API см. в документации.

person Abdelrahman Elhaddad    schedule 19.10.2017
comment
спасибо за вышеуказанную информацию. когда я пытаюсь использовать dax для getItem, я сталкиваюсь с com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted exception. - person Utharaa M; 24.10.2017
comment
в чем разница между AmazonDaxClient и DaxClient. Какой из них мы должны использовать для операции чтения кеша для Dynamodb - person Utharaa M; 24.10.2017
comment
AmazonDaxClient — это интерфейс для замены AmazonDynamoDB. DaxClient — это реализация интерфейса AmazonDaxClient. Однако DaxClient — это клиент с одним узлом, который обычно не следует использовать. Вместо этого следует использовать ClusterDaxClient, который также является реализацией интерфейса AmazonDaxClient, но содержит логику балансировки нагрузки и проверки работоспособности для кластера DAX. Для получения дополнительной информации об использовании ClusterDaxClient см. документация - person Abdelrahman Elhaddad; 24.10.2017
comment
Я думаю, что может сбивать с толку то, что существует два определения AmazonDaxClient. com.amazon.dax.client.dynamodbv2.AmazonDaxClient — это интерфейс, заменяющий интерфейс AmazonDynamoDB. Это то, что вы должны использовать для замены операций чтения и записи DynamoDB. com.amazonaws.services.dax.AmazonDaxClient — это класс для операций подготовки кластера DAX, создания кластера, описания кластера и т. д. - person Abdelrahman Elhaddad; 24.10.2017
comment
Можем ли мы использовать DynamoDBMapper для DaxClient? если нет, то какой должна быть замена? - person Utharaa M; 27.10.2017