Nano Hash - криптовалюты, майнинг, программирование

Получение последнего значения из таблицы DynamoDB

У меня есть датчики, отправляющие данные в таблицу DynamoDB каждые 4 секунды, и я хочу получить только последнее значение определенного датчика. Первичными ключами в таблице являются идентификатор датчика и отметка времени SysDt. Я указал индекс для использования идентификатора датчика в качестве ключа раздела и GWID (идентификатор шлюза) в качестве ключа сортировки. Я не могу получить только последние значения из таблицы.

Это мой сценарий:

    AWS.config.update({
      region: "us-west-2",
      endpoint: 'https://dynamodb.us-west-2.amazonaws.com',
      accessKeyId: "Fakeaccesskey",
      secretAccessKey: "Fakesecretkey"
    });

    var docClient = new AWS.DynamoDB.DocumentClient();

    function readItemtesttwovalues() {
        var table = "TA_Log1";
        var indexidgwid = "ID-GWID-index";
        var ID = "BB00000013";
        var GWID = "AA00000001";


        var params = {
            TableName: table,
            IndexName: indexidgwid,
            Key:{
                "ID": ID,
                "GWID": GWID
            },
            ScanIndexForward: false,
            Limit: 1
        };
        docClient.query(params, function(err, data) {
            if (err) {
                document.getElementById('testtwostatus').innerHTML = "Unable to read item: " + "\n" + JSON.stringify(err, undefined, 2);
            } else {
                document.getElementById('testtwostatus').innerHTML = data.Item.Status;
                document.getElementById('testtwotemp').innerHTML = data.Item.Temp;
                document.getElementById('testtwotempmap').innerHTML = data.Item.Temp;
                document.getElementById('testtwohum').innerHTML = data.Item.Hum;
                document.getElementById('testtwohummap').innerHTML = data.Item.Hum;
                document.getElementById('testtwobat').innerHTML = data.Item.BatV;
                document.getElementById('testtwobatmap').innerHTML = data.Item.BatV;
                var temp = Number(data.Item.Temp);
            }
        });
    }

Я прочитал это, но я я не могу понять, как это сделать.

Я благодарю вас за вашу помощь.


Ответы:


1

Я смог понять это, поэтому решил опубликовать его здесь для тех, кто ищет ответ.

То, как я определил params, было неверным. Вот код Javascript, который работает:

AWS.config.update({
  region: "us-west-2",
  endpoint: 'https://dynamodb.us-west-2.amazonaws.com',
  accessKeyId: "Fakeaccesskey",
  secretAccessKey: "Fakesecretkey"
});

var docClient = new AWS.DynamoDB.DocumentClient();

function readItemtesttwovalues() {

    var params = {
        TableName: "TA_Log1",
        IndexName: "ID-GWID-index",
        KeyConditionExpression: "ID = :id and GWID = :gwid",
        ExpressionAttributeValues: {
            ":id": "BB00000013",
            ":gwid": "AA00000001"
        },
        ScanIndexForward: false,
        Limit: 1
    };
    docClient.query(params, function(err, data) {
        if (err) {
            document.getElementById('testtwostatus').innerHTML = "Unable to read item: " + "\n" + JSON.stringify(err, undefined, 2);
        } else {
            document.getElementById('testtwostatus').innerHTML = data.Item.Status;
            document.getElementById('testtwotemp').innerHTML = data.Item.Temp;
            document.getElementById('testtwotempmap').innerHTML = data.Item.Temp;
            document.getElementById('testtwohum').innerHTML = data.Item.Hum;
            document.getElementById('testtwohummap').innerHTML = data.Item.Hum;
            document.getElementById('testtwobat').innerHTML = data.Item.BatV;
            document.getElementById('testtwobatmap').innerHTML = data.Item.BatV;
            var temp = Number(data.Item.Temp);
        }
    });
}
21.06.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..