Анализ массива данных API Salesforce на фрагменты для обработки

У меня есть приведенный ниже код, в котором я получаю результаты задания массового запроса APi, количество записей которого огромно (от 60 000 до 80 000). Я конвертирую его в JSON и буду вставлять в базу данных. Может ли кто-нибудь предложить лучший способ обработки огромного количества данных и их обработки по частям.

request.get( options, function ( error, response, body ) {
        if ( error )
        {

        } else
        {
            csvJson()
                .fromString( response.body )
                .then( ( jsonObj ) => {
                    var a = JSON.stringify( jsonObj );
                } )
        }
    } );

Большие данные, фрагменты — вот ключевые слова, намекающие на использование генераторов. Вы обязательно должны использовать генератор. Но перед этим API должен поддерживать и разбиение на страницы, иначе генераторы тоже могут оказаться бесполезными.

Ertan Kara 18.12.2020 21:07

Какой тип генератора вы рекомендуете?

learningmode 18.12.2020 21:48

Я не знаю, о каком языке или фреймворке вы говорите, но собственный API REST Salesforce может отображать до 2 КБ записей по запросу, что означает, что для 80 КБ вам нужно сделать 40 запросов, в каждом запросе вы получите следующий идентификатор результата запроса, например разбиение на страницы. Кстати, Salesforce не предназначена для того, чтобы делать много запросов, по крайней мере, бесплатно, они продают 10 000 запросов за 25 долларов в месяц, и даже в профессиональной версии вы получаете только 100 000 запросов / 24 часа. Это означает, что вы должны сделать какой-то контроль кеша на своей стороне в зависимости от того, что вы хотите сделать.

job3dot5 19.12.2020 11:26
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
0
3
185
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
async function* readApi() {
  let page = 1;
  while (page != null) {
    const r = await fetch(`http://target-api.com/stuff?page=${page}`)
    const d = await r.json()
    page = yield d
  }
}

const it = readApi()

it.next() // Init fn with first next call it will get the first page
it.next(2) // Gets the second page, process the data and go to next call
// ..
// ..
it.next(null) // When you are done with getting data call with null

Другие вопросы по теме