Чтение файла из хранилища BLOB-объектов, поскольку readableStream останавливается между

Я читаю большой двоичный объект типа CSV размером около 38 МБ (1,5–2 миллиона строк) из хранилища Azure blob как readableStream и обрабатываю его построчно. В процессе обработки я выполняю некоторые проверки и выполняю операцию с БД. Мой код работает должным образом при локальном использовании azurite npm, однако он застревает между ними, когда я обрабатываю его с использованием хранилища BLOB-объектов Azure. Это фрагмент кода

      public async downloadFileAsReadableStream(fullFileName: string): Promise<NodeJS.ReadableStream | undefined> {
            const blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);
            this.containerClient = blobServiceClient.getContainerClient(containerName);
            logger.info(`Start reading file: ${fullFileName} from container: ${this.containerName}`);
            const downloadBlockBlobResponse = await this.containerClient
                .getBlockBlobClient(fullFileName)
                .download();
            return downloadBlockBlobResponse.readableStreamBody;
    }

const processStream = async (readableStream: NodeJS.ReadableStream) => {
    try {
        console.time("File processing completed in");
        const parser = readableStream.pipe(csvParser());
        for await (const row of parser) {
                const dbRecord = await dbOperation(row);
        }
        await onStreamEnd();
    } catch (err) {
        logger.error(err);
    }
}

Я новичок в Nodejs и не уверен, что правильно обработал обратное давление, может ли мой код быть узким местом для хранилища BLOB-объектов или базы данных? Я думаю, что мой код выполняется последовательно, т.е. цикл for await будет ждать обработки строки, пока не будет выбрана следующая строка, правильно ли я понимаю? Также я получил несколько сбоев для GetBlobPropertiesприкрепляя снимок к тому же. Пожалуйста, помогите, как мне отладить это (предположим, что доступ к лазурному порталу ограничен).Ошибки API BLOB

0 ответов

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