Задать вопрос
Ответы пользователя по тегу Хранение данных
  • Проблемы с загрузкой файлов через S3 API на Backblaze B2 (Laravel, Timeweb хостинг). Большие файлы прерываются во время загрузки, кто сталкивался?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лет 5 назад использовал.

    Не знаю что такое Backblaze B2. Но в Amazon S3 реализации, любая загрузка
    длинного файла шла через массив байт который передавался единоразово.
    Почему так странно сделано - непонятно. Почему не было streamable-API - ХЗ.

    Но если вы допустим захотите загрузить файл в 1Г то сервис у себя должен аллоцировать
    буфер такого-же размера. Возможно у сервера просто не хватает памяти для этого буфера.
    Ответ написан
    2 комментария
  • Как проверить 500 000 файлов word,exel,pdf ,txt что они не битые?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы поделил файлы word,exel,pdf ,txt на группы.

    1) Aрхивы docx, xlsx. Как выше заметил один джентльмен их можно проверить любой
    утилитой которая умеет читать zip и делать zip -t (test) с выводом статуса в errorlevel.
    Автоматизировать можно либо bash либо python скриптом.

    Если архив целый (контрольные суммы совпали) то и документ почти 100% не поврежден.

    2) Офисные документы старого формата (doc/xls). Здесь я-бы парсил их через apache POI
    (это java библиотека). Это разработка. Но простая. На 1 story point. Я думаю
    любой первокурсник напишет.

    3) Adobe документы. Масса вариантов. Есть автоматизация с помощью bash/python
    и консольными тулзами. Я перечислю тулзы которые есть под линукс и которые читают
    pdf.

    - pdfimages
    - pdfextract
    - pdftoppm

    Напомню что почти все они должны в случае неуспеха генерировать статус код не нулевой.
    Это будет критерий проверки.

    4) Прочие текстовые документы. Неструктурированные. Я тут честно не знаю как их проверять.
    Но допустим если они содержат текст в кодировке win-1251 то любой криптохакер
    с cryptohack вам быстро напишет скриптик
    для проверки что гистограмма или биграмма
    соотвествует примерно тексту и национальным признакам. Если файл будет в нулях
    или в рандомном шуме то какой-то критерий не сработает. Здесь надо подумать
    и просто глазами посмотреть на эти документы. Возможно большая часть из них
    это бланки - и тогда надо чекать наличие просто каких-то шаблонов.
    Ответ написан
    2 комментария
  • Как создать хранилище с raid 1?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Raid в домашних условиях никому не нужен. Просто не летает эта тема.
    Купи обычный USB 3.0 portable drive в резиновом корпусе. А лучше два. И пиши бэкапы
    туда в шахматном порядке.
    Ответ написан
  • Как ограничить доступ к S3 без проксирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В S3 можно фолдеры создавть. Как часть ключа-пути.
    s3://bucket/Bolage/file1.txt
    s3://bucket/mayton2019/file1.txt
    Ответ написан
    Комментировать
  • Хранится ли в файле(скрин, фото, картинка) информация о его редактировании (ретушь, обрезка и тд)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зависит от формата. В старые времена ходили трюки с JPEG. Можно было из thumbnail извлечь оригинал
    картинки. Правда не в очень идеальном разрешении.

    Смотрите мануал по exiftool.

    Не знаю делают ли thumbnail сейчас. Это было актуально для быстрой загрузки в браузерах во время
    модемного инета.

    По всем прочим форматамм - надо читать документацию. Фотошопный PSD хранит много преобразований
    и там шансов восстановить слои больше. Но PSD проект редко публикуется вообще.
    Ответ написан
    Комментировать
  • Где и как хранить файлы пользователей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если тебе нужно временное место - то используй системную переменную

    System.getProperty("java.io.tmpdir")

    Или с префиксом и суффиксом - есть готовая функция которая возвращает файл.

    Files.createTempFile("", ".tmp")

    Вместо игр со счетчиком от 0 до 1000 - лучше использовать текущую дату-время или GUID.
    Ответ написан
    Комментировать
  • Как эффективно хранить и раздавать миллиарды мелких файлов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На ум приходит идея - разделить файлы. По размеру и по роду доступа.
    Например картинки - положить не в файловую систему а во внешнее хранилище типа S3.
    Здесь мы исходим из предположения что размер файла будет - как средний размер фотографии в jpeg.
    Потому что за более мелкими - будет дорого ходить по сети кудато.

    Мелкие файлы положить в файловую систему которая умеет работать с мелкими. Например Reiser4.
    По крайней мере в рекламных анонсах они писали об эффективном использовании мелочи. Но тут я не готов
    что-то доказывать. Надо ставить эксперимент и смотреть как оно идет.

    XFS - хорошая система. Я все магнитные блины в нее переформатировал но не было такого опыта с мелкими.
    У меня как раз очень большие файлы лежат. Датасеты.

    Еще я-бы предложил посмотреть на саму прикладную задачу с точки зрения коррелированного доступа.
    Например каждый пользователь читает свой index.htm, avatar.jpg, e.t.c. Имеет смысл этот сет файлов
    запаковать в очень быстрый архив. По сути в пакет даже без сжатия чтобы по заказу быстро отдавать
    эту пачку по сети (user_id.pack). А там уж браузер разберется. Пришлем лишнее - не страшно. Все равно пакет летит.
    Главное что теперь у нас нет россыпи мелких файлов а есть среднего размера упаковки на каждого
    пользователя по user_id.
    Ответ написан
  • Как или почему загружаются и скачиваются свойства файла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На сервере свойства файла тоже хранятся в файловой системе или в БД или по разному в зависимости от того как настроен сервер?

    HTTP протокол вообще не оперирует понятием "файл". Он обычно делает responce который может содержать
    octet-stream определенной длины. Или неизвестной длины. Этот-же Responce может хранить в себе сет атрибутов. Таких как ETag,
    Age, Accept-Range... e.t.c.

    Поэтому процесс скачивания чего-либо с интернета - это квест. Чтобы решить этот квест надо ответить на
    вопросы - какие атрибуты нам вернул HTTP responce. И какой клиент для скачивания был использован.
    Например клиентом может быть не браузер а Curl, Wget, Postman, *Downloader, Скрипт на Python
    и многое-многое другое. И все они действуют по разному. Каждый - по своему алгоритму как сделали
    создатели этих утилит.

    Сами файловые системы тоже отличаются по качеству хранения атрибутов. Например NTFS может приклеивать
    к файлу большое количество атрибутов (ACL, Подписи от антивирусов) а файловая система FAT32 имеет
    только несколько дат и фиксированное количество легаси атрибутов которые остались еще со времен MS-DOS.
    Поэтому чисто приколовшись можно копировать файлы с NTFS в FAT32 и обратно и таким образом
    стерилизовать некоторые из них.
    Ответ написан
    Комментировать
  • Какой способ хранения и выборки данных предпочтительней?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно делать одну таблицу и с ней работать. Самый простой вариант - обычно самый надежный и долговечный.

    Игры с разными таблицами - это овер-инжинеринг. И ты зря занимаешся этим потому что в топике совершенно
    нет мотивации к этому. Пускай одна таблица работает и если она по каким-то причинам перестанет справлятся
    - то тогда можно рассмотреть materialized views, витрины, гиперкубы и прочие технологии. Но пока это
    все - не нужно.
    Ответ написан
    Комментировать
  • Где хранить 1ТБ видео?

    mayton2019
    @mayton2019
    Bigdata Engineer
    К VPS можно подключить блочное хранилище. Если это у AWS или Azure то там даже есть разные
    тарифы и разные гарантии по скорости там и доступу.

    Вот один индюк хвастается https://www.youtube.com/watch?v=VnO3Lz7Qr0U
    как он ловко подключает себе к Амазонской EC2-шке одно блочное устройство.
    Вам только нужно выбрать магнитный драйв и подешевле. Если речь идет о фильмах то тут SSD не важен
    и обычный HDD норм пойдет.

    UPD:
    Ответ написан
    Комментировать
  • Бьются файлы на ПК, какая может быть причина? Как исправить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В чем причина повреждений - трудно узнать. Тут нужен доступ к твоему десктопу и нужно сравнивать оригинал
    с поврежденной копией.

    Посмотри линуксовую утилиту par2 https://man.archlinux.org/man/par2.1.en и попробуй начать ее использовать.

    У меня есть архивы которым по 10-15 лет. И я их храню вместе с контрльными файлами
    которые генерит par2. Она исправляет одиночные поврежденные биты на всей поверхности файла.
    Насколько много или плотно - я точно не могу сказать. Тут надо ставить эксперимент. Вобщем - сам поразбирайся.
    Ответ написан
    Комментировать
  • Возможен ли invalid файл при скачивании через несколько серверов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Такое возможно. Те кто беспокоятся о целостности публикации - обычно прикладывают рядом с файлом
    md5, sha1 контрольное число чтобы можно было сразу проверить.

    Самовосстановление и докачка в TCP не поддерживается. Можно возобновить докачку с HTTP протокола
    в режиме continue (wget -c) но это при условии что веб-хостинг правильно публикует размер файла
    и поддерживает range-запросы. Я этим часто пользовался в 2000е во времена DSL модемов когда
    сбой соединения разрывал мне закачку фильма или музыки.

    А вот если линка была torrent или magnet или eMule то клиет будет ее бесконечно докачивать
    пока контрольный код не совпадет с тем который в самом .torrent файле или в линке. Поэтому
    торрент линка - это вообще идеальный вариант для закачки.
    Ответ написан
    5 комментариев
  • На чем сейчас (локально) принято хранить долговременные данные (бэкапы)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лет 10 назад можно было на барахолках купить стриммеры HP. А кассет было много на предприятиях. Некоторые впоследствии на радиорынках продавались еще в нераспечатанном виде. Производитель лент гарантировал что-то вроде 15 лет хранения информации (при условиях правильной температуры и влажности). Это - самые длительные сроки что я видел. Размер касеты у них кажется был 20-40Гб.

    Еще Verbatim продвигал какие-то особо прочные DVD+R диски с алмазным покрытием. А по объему кажется это были 4.7G Надо посмотреть я не помню точно. Вобщем надо искать + еще покупать пищущее устройство.
    А сейчас даже ноуты продают уже без DVD привода.

    Я у себя дома храню на двух HDD дисках серии WD-Green. Конечно непонятно что делать если от времени сгорает
    контроллер но вроде как 2 сразу в один день не должны сгореть.
    Ответ написан
    2 комментария
  • Как устроить кеширование облака на VPS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Идея регулируемого тарифа заложена например в AWS S3 хранилище. Там вы для старых файлов можете просто задать атрибут storage class и указать более жлобские модели хранения вплоть до ленточного архива. Но установкой атрибута класса хранения вы будете сами управлять.

    Очень сильно стоит вопрос определения "старости файлов". Я-бы учитывал частоту доступа за период. К пример кто-то может интересоваться старыми проектными файлами и алгоритм балансировки должен это как-то учитывать.

    И внешнаяя ссылка на файл вообще не должна изменяться.
    Ответ написан
    3 комментария
  • Как организовать хранилище данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для недорогих облачных хранилищ обычно используют
    AWS/S3, MS-Azure BlobStorage, Google Cloud Storage.
    Ответ написан
    Комментировать
  • Как с помощью TimescaleDB реализовать выгрузку последних данных с разбивкой по устройствам?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А попробуй убери из индекса дату.

    CREATE INDEX ix_imei_time ON locations (imei);

    Я не работал с TimescaleDB но вообще работать со вторичными индексами в time-series - это плохая тема.
    Лучше выбрать лидирующий партишен как дата. И вторичный партишен как хеш от какого-то интересующего
    атрибута или группы атрибутов. И тогда оптимизатор пойдет просто в тот фасет который соотвествует нужному
    пересечению партишенов.
    Ответ написан
  • Как хранить данные о просмотре?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Недостаточно информации. Обычно БД и модель таблиц затачиваются под типичный запрос.
    Например. У нас есть публикации и и пользователи (те кто просматривают). Концептуально - это
    матрица где по горзионтали - пользователи а по вертикали публикации. Если рассматривать во времени
    то появляется третье измерение (куб) - ось времени. Где можно делать срез за последний день
    или неделю или год. Каждую ось можно агрерировать (брать все данные) как бы для аналитики.

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

    Работа - более экспериментальная. Делаешь симулятор запросов. И смотришь как оно работает.
    Насколько быстро.
    Ответ написан
  • Почему в Samsung data migration происходит остановка на 38-39%?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я читернул немного и спросил всезнающий чят. Но не про утилиты самсунг а про slow down скорости для SSD. Вот ответ:

    One possible reason why an SSD might slow down during copying is that it becomes busy with other operations, such as garbage collection or wear leveling. These processes are designed to help maintain the performance and lifespan of the SSD by redistributing data across the drive and freeing up space. However, they can also take up valuable resources that would otherwise be used for data transfer.

    Another factor that can affect the speed of an SSD during copying is the way that the data is being written to the drive. SSDs use a technology called NAND flash memory, which allows data to be written in blocks. If the data being copied is not aligned with these blocks, it can cause the SSD to slow down or even pause during the transfer.
    Ответ написан
    Комментировать
  • Где сохраняться все данные в айфоне, линукс, виндовс?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для Windows/Linux.

    Почти для всех браузеров когда что-то скачал и потом нажимаешь Ctrl+J то открывается фолдер
    (обычно %UserProfile%/Downloads) и там лежит то что надо. Для Linux почти тоже самое /home/user/Downloads

    Есть еще программный кеш для картинок, css/js/html e.t.c. Он в каждом браузере лежит по своему
    маршруту но обычно где-то в %UserProfile%/.hiddenFolder и имена файлов там не информативные. Хешируются
    по какой-то формуле чтоб хакеры и вирусы сами себя не нашли и не смогли передать управление.
    Этот кеш пользователем напрямую не управляется но просто надо знать что он существует.
    Если ты - активный сёрфер то можешь достаточно много накачать туда так чтобы создать проблемы
    для свободного места. Обычно где-то в настройках есть батон для чистки этих файлов.

    В режиме инкогнито браузер обычно гарантирует автоматическое удаление кеша после
    закрытия режима.

    По поводу айфона - не знаю.
    Ответ написан
    2 комментария