Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Database
  • Начало работы
    • Обзор
    • Создание базы данных
    • YQL
      • Работа с данными
      • Работа с YDB CLI
      • Работа с YDB SDK
    • Document API
      • Работа с данными
      • Работа с инструментами AWS
        • Настройка окружения
  • Пошаговые инструкции
    • Работа с YDB CLI
      • Структура и описание команд YDB CLI
      • Получение информации об объекте схемы
      • Потоковое чтение таблицы
      • Работа со вторичными индексами
    • Использование плана запроса и AST
    • Управление базами данных
    • Подключение к базе данных
    • Управление таблицами
    • Чтение и запись данных
    • Работа со вторичными индексами
  • Работа с SDK
  • Концепции
    • Обзор
    • Модель данных и схема
    • Режимы работы Serverless и Dedicated
    • Типы данных
    • Транзакции
    • Вторичные индексы
    • Time to Live (TTL)
    • Термины и определения
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
    • Обзор
    • Бессерверный режим
    • Режим с выделенными инстансами
  • Рекомендации
    • Проектирование схемы
    • Партицирование таблиц
    • Вторичные индексы
    • Постраничный вывод
    • Загрузка больших объемов данных
    • Использование таймаутов
  • YDB API и справочник
    • Ограничения базы данных
    • Обработка ошибок в API
  • HTTP API, совместимый с Amazon DynamoDB
    • Справочник API
      • Все методы
      • Actions
        • BatchGetItem
        • BatchWriteItem
        • CreateTable
        • DeleteItem
        • DeleteTable
        • DescribeTable
        • GetItem
        • ListTables
        • PutItem
        • Query
        • Scan
        • TransactGetItems
        • TransactWriteItems
        • UpdateItem
      • Общие ошибки
  • Справочник YQL
    • Обзор
    • Типы данных
      • Простые
      • Опциональные
      • Контейнеры
      • Специальные
    • Синтаксис
      • Неподдерживаемые конструкции
      • Работа с текстовым представлением типов данных
      • Выражения
      • CREATE TABLE
      • DROP TABLE
      • INSERT INTO
      • UPSERT INTO
      • REPLACE INTO
      • UPDATE
      • DELETE
      • SELECT
      • GROUP BY
      • JOIN
      • FLATTEN
      • ACTION
      • DISCARD
      • PRAGMA
      • DECLARE
      • OVER, PARTITION BY и WINDOW
    • Встроенные функции
      • Базовые
      • Агрегатные
      • Оконные
      • Для работы со списками
      • Для работы со словарями
      • Для работы с JSON
      • Для работы со структурами
      • Для работы с типами
    • Предустановленные пользовательские функции
      • HyperScan
      • Pcre
      • Pire
      • Re2
      • String
      • Unicode
      • Datetime
      • Url
      • Ip
      • Digest
      • Math
      • Histogram
    • Работа с текстовым представлением типов данных
  • Туториал YQL
    • Обзор
    • Создание таблицы
    • Добавление данных в таблицу
    • Выборка данных из всех колонок
    • Выборка данных из определенных колонок
    • Сортировка и фильтрация
    • Агрегирование данных
    • Дополнительные условия выборки
    • Объединение таблиц с помощью JOIN
    • Вставка и модификация данных с помощью REPLACE
    • Вставка и модификация данных с помощью UPSERT
    • Вставка данных с помощью INSERT
    • Обновление данных с помощью UPDATE
    • Удаление данных
    • Добавление и удаление колонок
    • Удаление таблицы
  • Обслуживание
    • Резервное копирование
  • Диагностика
    • Системные таблицы
  • Вопросы и ответы
    • Общие вопросы
    • Ошибки
    • YQL
    • Все вопросы на одной странице
  • Публичные материалы
  1. HTTP API, совместимый с Amazon DynamoDB
  2. Справочник API
  3. Actions
  4. Scan

Метод Scan

  • Запрос
    • Параметры
  • Ответ
    • Параметры
  • Ошибки

Возвращает элементы и атрибуты из указанной таблицы.
По умолчанию возвращает все элементы, но не более 1 Мб за раз или до 100 записей. Если в таблице больше данных, то в параметре LastEvaluatedKey вернется последний первичный ключ, на котором остановилась операция сканирования. Его можно использовать для продолжения сканирования.

Фильтры, указанные в параметре FilterExpression, применяются уже после основной выборки.

По умолчанию метод возвращает потенциально согласованные данные из таблицы. Если нужны строго согласованные данные, то необходимо установить параметр ConsistentRead=true.

Запрос

Запрос содержит данные в формате JSON.

{
   "ConditionalOperator": "string",
   "ConsistentRead": boolean,
   "ExclusiveStartKey": { 
      "string" : { 
         "B": blob,
         "BOOL": boolean,
         "BS": [ blob ],
         "L": [ 
            "AttributeValue"
         ],
         "M": { 
            "string" : "AttributeValue"
         },
         "N": "string",
         "NS": [ "string" ],
         "NULL": boolean,
         "S": "string",
         "SS": [ "string" ]
      }
   },
   "ExpressionAttributeNames": { 
      "string" : "string" 
   },
   "ExpressionAttributeValues": { 
      "string" : { 
         "B": blob,
         "BOOL": boolean,
         "BS": [ blob ],
         "L": [ 
            "AttributeValue"
         ],
         "M": { 
            "string" : "AttributeValue"
         },
         "N": "string",
         "NS": [ "string" ],
         "NULL": boolean,
         "S": "string",
         "SS": [ "string" ]
      }
   },
   "FilterExpression": "string",
   "Limit": number,
   "ProjectionExpression": "string",
   "ReturnConsumedCapacity": "string",
   "ScanFilter": { 
      "string" : { 
         "AttributeValueList": [ 
            { 
               "B": blob,
               "BOOL": boolean,
               "BS": [ blob ],
               "L": [ 
                  "AttributeValue"
               ],
               "M": { 
                  "string" : "AttributeValue"
               },
               "N": "string",
               "NS": [ "string" ],
               "NULL": boolean,
               "S": "string",
               "SS": [ "string" ]
            }
         ],
         "ComparisonOperator": "string"
      }
   },
   "Select": "string",
   "TableName": "string"
}

Параметры

Параметр Описание
TableName Имя таблицы, содержащей данные.
Может содержать путь в иерархии каталогов вида path/to/table.

Тип: Строка
Длина: 3 - 255 символов
Шаблон: [a-zA-Z0-9_.-]+
Обязательно: Да
ConsistentRead Определение модели согласованносити чтения.
Если true, то используется строго согласованное чтение; если false (по умолчанию), то используется последовательное чтение.
Параметр не поддерживается для глобальных вторичных индексов. Если попытаться просканировать вторичный индекс со значением true, то метод вернет исключение ValidationException.

Тип: Boolean
Обязательно: Нет
ExclusiveStartKey Первичный ключ элемента, с которого метод начнет поиск.
Если в предыдущем запросе метод вернул LastEvaluatedKey, то используйте это значение чтобы продолжить поиск с того места, на котором метод остановился в прошылй раз.

Тип: Объект типа AttributeValue
Длина ключа: максимальная длина 65535.
Обязательно: Нет
ExpressionAttributeNames Заполнитель (placeholder), который можно использовать в выражении вместо имени атрибута. Заполнитель должен начинаться с символа решетки #.
В каких случаях это может пригодиться:
  • Если нужно указать атрибут, имя которого конфликтует с зарезервированным словом.
  • В качестве переменной, если имя атрибута используется в выражении несколько раз.
  • Для предотвращения неправильной интерпретации специальных символов в имени атрибута.
Например, имя атрибута Percentile конфликтует с зарезервированным словом, и его нельзя в явном виде использовать в выражении. Чтобы обойти эту проблему, нужно в параметре ExpressionAttributeNames указать заполнитель: {"#P":"Percentile"}. И затем вместо настоящего имени атрибута использовать #P.

Тип: Строка
Длина: 1 - 65535 символов.
Обязательно: Нет
ExpressionAttributeValues Заполнитель (placeholder), который можно использовать в выражении вместо значения атрибута, аналогично ExpressionAttributeNames. Заполнитель должен начинаться с символа двоеточия :.
Например, нужно проверить, было ли значение атрибута ProductStatus одним из следующих: Available | Backordered | Discontinued. Для этого сначала объявить заполнители : { ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }. А потом их можно использовать в выражении: ProductStatus IN (:avail, :back, :disc)

Тип: Строка типа AttributeValue
Обязательно: Нет
FilterExpression Условия, которые применятся после первоначальной выборки данных.
Элементы, не соответвтующие этому условию, не вернутся в итоговом ответе.
Тип: Строка
Обязательно: Нет
Limit Максимальное количество элементов, которые будут оценены для выборки.
Когда метод обработает указанное количество элементов, он останавливается и возвращает результат до того места, на котором остановился. При этом в параметре LastEvaluatedKey вернется последний ключ, на котором он остановился. Его можно использовать чтобы продолжить сканирование с того места, на котором остановился метод.

Тип: Целое число
Диапазон: минимальное значение 1.
Обязательно: Нет
ProjectionExpression Выражение, определяющие атрибуты для извлечения. Атрибуты в выражении должны быть разделены запятыми.
Если имена атрибутов не указаны явно, то возвращаются все атрибуты элемента.

Тип: Строка
Обязательно: Нет
ReturnConsumedCapacity Нужно ли возвращать информацию о потребляемой мощности.
  • TOTAL - Вернуть информацию.
  • NONE - Не возвращать информацию.

Тип: Строка
Возможные значения: TOTAL | NONE
Обязательно: Нет
Select Атрибуты, которые нужно вернуть.
Может принимать значения:
  • ALL_ATTRIBUTES — возвращает все атрибуты элемента из таблицы или индекса (по умолчанию).
  • COUNT — возвращает только количество совпадающих атрибутов.

Тип: Строка
Допустимые значения: ALL_ATTRIBUTES | COUNT
Обязательно: Нет

Ответ

В случае успеха вернется HTTP с кодом 200.
Запрос возвращает данные в формате JSON.

{
   "ConsumedCapacity": { 
      "CapacityUnits": number,
      "GlobalSecondaryIndexes": { 
         "string" : { 
            "CapacityUnits": number,
            "ReadCapacityUnits": number,
            "WriteCapacityUnits": number
         }
      },
      "LocalSecondaryIndexes": { 
         "string" : { 
            "CapacityUnits": number,
            "ReadCapacityUnits": number,
            "WriteCapacityUnits": number
         }
      },
      "ReadCapacityUnits": number,
      "Table": { 
         "CapacityUnits": number,
         "ReadCapacityUnits": number,
         "WriteCapacityUnits": number
      },
      "TableName": "string",
      "WriteCapacityUnits": number
   },
   "Count": number,
   "Items": [ 
      { 
         "string" : { 
            "B": blob,
            "BOOL": boolean,
            "BS": [ blob ],
            "L": [ 
               "AttributeValue"
            ],
            "M": { 
               "string" : "AttributeValue"
            },
            "N": "string",
            "NS": [ "string" ],
            "NULL": boolean,
            "S": "string",
            "SS": [ "string" ]
         }
      }
   ],
   "LastEvaluatedKey": { 
      "string" : { 
         "B": blob,
         "BOOL": boolean,
         "BS": [ blob ],
         "L": [ 
            "AttributeValue"
         ],
         "M": { 
            "string" : "AttributeValue"
         },
         "N": "string",
         "NS": [ "string" ],
         "NULL": boolean,
         "S": "string",
         "SS": [ "string" ]
      }
   },
   "ScannedCount": number
}

Параметры

Параметр Описание
ConsumedCapacity Единицы мощности, потребленные операцией удаления.
Возвращается только в том случае, если в запросе был указан параметр ReturnConsumedCapacity со значением TOTAL.

Тип: объект типа ConsumedCapacity
Count Количество элементов в ответе.
Если в запросе вы использовали FilterExpression, тогда это количество элементов, возвращенных после применения фильтра.

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

Тип: массив объектов типа AttributeValue
Длина ключа: 1 - 65535 символов.
LastEvaluatedKey Первичный ключ элемента, на котором остановилось сканирование. Используйте это значение, чтобы продолжить с того места, на котором остановились. Если в LastEvaluatedKey пусто, значит метод обработал все элементы и больше нечего возвращать.

Тип: ассоциативный массив типа AttributeValue
Длина ключа: 1 - 65535 символов.
ScannedCount Количество элементов, найденных до применения фильтров FilterExpression.

Тип: целое число

Ошибки

Параметр Описание
InternalServerError Произошла внутренняя ошибка на стороне сервера.

Код состояния HTTP: 500
ProvisionedThroughputExceededException Вы слишком часто отправляете запросы. Попробуйте увеличить интервалы между запросами.
Если таких запросов будет не слишком много, Yandex Database постарается обработать их все.

Код состояния HTTP: 400
RequestLimitExceeded Пропускная способность превышает квоту.

Код состояния HTTP: 400
ResourceNotFoundException Указанная таблица не существует.

Код состояния HTTP: 400

Также могут возникать Общие ошибки, одинаковые для всех методов.

В этой статье:
  • Запрос
  • Параметры
  • Ответ
  • Параметры
  • Ошибки
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»