Импорт/экспорт баз данных. Что нужно в подобных приложениях? Опрос



    Приложений для конвертации данных в БД очень много и у каждого есть какая-то особенность. Так как сам пишу универсальное приложение ImportExportDataSql для импорта/экспорта данных (пока только Microsoft SQL Server и под Windows), то хочу собрать статистику о том, какими функциями вы пользуетесь в подобных приложениях и за что Вам нравится то или иное приложение?

    Надеюсь, что у Вас найдется пару минут, чтобы принять участие в опросе.

    Немного о ImportExportDataSql


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

    С помощью ImportExportDataSql Вы сможете:

    • быстро загружать CSV файлы большого объема (более 1Гб) в SQL Server
    • загружать Excel файлы и CSV с возможностью настройки полей, а также с ограничением количества обрабатываемых строк (удобно при отладке)
    • выгружать выборочные данные из БД, в SQL формате и затем выполнять этот скрипт на другой БД (т.е. использовать как средство синхронизации данных)
    • копировать джобы с одной машины на другую

      image
    • выгружать структуру БД.

    Главной особенностью ImportExportDataSql, является то, что можно объединять несколько SELECT запросов, выгружая результат в виде SQL в один файл.

    Добавляйтесь в группу VK, пишите свои пожелания, буду рад доработать приложение под Ваши нужды.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Выберите форматы файлов, которыми пользуетесь при переносе данных:

    • 74,1%CSV40
    • 35,2%Excel19
    • 61,1%SQL33
    • 16,7%DBF9
    • 29,6%XML16
    • 37,0%JSON20

    Как часто загружаете изображения и другие файлы в БД (в поле типа BINARY)?

    • 3,9%Часто2
    • 37,2%Редко19
    • 58,8%Никогда30

    Для переноса данных между двумя БД, не имеющих прямого доступа, предпочитаете использовать:

    • 46,7%утилиты с командной строкой от производителя СУБД (например, bcp)21
    • 28,9%ETL решения13
    • 33,3%операцию BULK INSERT15
    • 53,3%дамп в SQL формате24

    Экспорт/импорт пространственных полей (geography, geometry)

    • 4,4%Часто2
    • 15,6%Редко7
    • 80,0%Никогда36

    Средний объем файла (CSV, SQL, XML, DBF и т.д.), который обычно загружается в БД

    • 34,8%До 50 Мб16
    • 26,1%До 500 Мб12
    • 23,9%До 1Гб11
    • 15,2%От 1Гб и выше7

    Чаще всего файлы в БД загружаете:

    • 32,6%по расписанию15
    • 34,8%автоматически, по мере прихода данных16
    • 67,4%вручную, по мере прихода данных31

    Выберите СУБД, которыми пользуетесь:

    • 21,6%Oracle11
    • 49,0%MySQL25
    • 58,8%Microsoft SQL Server30
    • 49,0%PostgreSQL25
    • 9,8%Firebird5
    • 21,6%MongoDB11
    • 9,8%Microsoft Access5
    • 23,5%другие12

    Как часто приходится выгружать структуру БД?

    • 27,7%Часто13
    • 61,7%Редко29
    • 10,6%Никогда5

    На каких операционных системах разрабатываете приложения?

    • 62,0%Windows31
    • 30,0%Linux15
    • 8,0%MacOS4

    Выберите пункты, которые наиболее важны при выборе средства экспорта/импорта?

    • 77,3%простота использования (быстрое освоение приложения, например: в течении 1 часа)34
    • 38,6%быстрота развертывания (установка и настройка)17
    • 40,9%наличие командной строки18
    • 27,3%замер времени выполнения операции12
    • 45,4%портативное (без установки)20
    • 65,9%быстродействие29

    На данный момент, какие используете приложения для конвертации данных?

    • 18,6%Платные8
    • 58,1%Бесплатные25
    • 60,5%Свои наработки26
    • 16,3%Никакие7

    Комментарии 11

      0
      Мало в каких подобных приложениях есть сравнение двух баз/таблиц. Не знаю насколько часто это нужно кому-то, но мне несколько лет назад очень нужно было, и единственное решение, которое я нашел это HeidiSQL, который в моем случае глючил довольно сильно.

      Речь о функционале, когда можно выбрать две базы/таблицы и сравнить их, а как итог, получить SQL, который приведет вторую сравниваемую базу/таблицу к такой же структуре как первая, то есть добавит недостающие таблицы/столбцы, изменит тип столбцов, но не будет удалять текущие данные.
        0

        Не всегда можно изменить тип столбцов без потери данных

          0
          Как раз сейчас занимаюсь такой задачей. Для SQL Server нет идеального решения, который сделал бы выгрузку структуры таблиц в SQL так же, как это делает SQL Server Management Studio (SSMS), с файловыми группами и секционированными функциями. Даже SSDT не умеет выгружать файловые группы в таблицах.
          Не подскажете, HeidiSQL умеет выгружать таблицы в том же виде, что и SSMS?
            0
            К сожалению не подскажу, не пользовался SSMS
            0
            Если нужна точная копия таблицы, не лучше ли будет использовать drop, create, insert из дампа, вместо сравнения?

            Понятно, что создание индексов займет достаточно много времени на больших объемах данных, но и сравнение в этом случае зависнет на долго.
              0
              Если нет FOREIGN KEYS, то можно и пересоздать таблицу.
              На счет индексов могу высказать свое мнение, на примере MSSQL:
              1) если таблица небольшая, то можно создать индексы после заполнения таблицы,
              2) если таблица занимает несколько Гб, то для создания кластеризованного индекса понадобится места столько же, сколько и сама таблица
              Поэтому, предпочитаю, создавать индексы заранее на больших таблицах
                0

                А зачем? Если база на допустим 50-100 гигов, заяем гонять эти данные туда сюда если надо добавить один/два столбца?


                Ну и база может использоваться, на время выгрузок станет недоступной и могут потеряться данные

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

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

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

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

                  В функционале, скорее всего должны быть какие-то типовые операции, вида скопировать столбец из таблицы А в таблицу Б, с возможностью гибкой настройки и выполнения дополнительных операций необходимых для импорта.
                    0
                    Я написал модуль отслеживания изменения структуры БД на SQL сервер, так что проблем с просмотром истории, кто и что менял, теперь нет. Все что нужно, это создать триггер:
                    create trigger VersionControlTriggerName on all server

                    в котором нужно обрабатывать событие EVENTDATA(), подробности в этой статье
                +1
                Red Gate SQL Comparer сравнивает для SQL Server отлично, Oracle есть. Как Вам нужно со скриптами и всем чем нужно. Также dbforge умеет это делать. Наберите в поисковике название нужной БД и слово Comparer, наверняка найдётся нужное. HeidiSQL для сравнения никогда не пользовал.
                  0

                  Добавлю, что есть отличные готовые решения как для сравнения по схемам баз данных, так и по самим данным.
                  Есть и бесплатные.
                  Сам пользуюсь решениями от компании Devart.
                  Самому компаратор написать весьма сложно и рутинно. Обычно такими вещами занимается специально выделенный для этого отдел и явно немаленькой компании.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое