Загрузка данных с помощью JDBC

Загрузка данных

Для загрузки данных с помощью JDBC, вам необходимо подключиться к одной из поддерживаемых баз данных с помощью SQL-запроса. При этом вы можете сделать это двумя способами:

  • с помощью стандартной формы, где вы указываете адрес сервера, название базы данных, имя пользователя и пароль;

  • с использованием строки подключения, которая позволяет задавать произвольные JDBC-подключения, тем самым расширяя перечень поддерживаемых источников.

В загружаемых таблицах названия полей не должны содержать следующие символы:

  • точка;

  • двоеточие;

  • квадратные скобки.

Для загрузки данных необходимо выполнить следующие шаги:

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

    Без имени-1-20240925-192646.png
  2. В открывшемся окне нажмите Данные > Выбрать источник данных:

    Без имени-20240925-192721.png
  3. В появившемся диалоге кликните JDBC и нажмите кнопку Выбрать:

  4. В открывшемся окне выберите Новое подключение и заполните все поля (см. пример ниже):

    • Адрес сервера в формате mysql://{адрес сервера}:{порт} или postgresql://{адрес сервера}:{порт};

    • База данных - название базы данных;

    • Имя пользователя, под которым вы будете подключаться к базе данных;

    • Пароль для подключения. В пароле не допускаются следующие символы:

      • обратная косая черта (\);

      • апостроф (')

      • обратный апостроф (`)

    • Название таблицы – укажите в этом поле название для добавляемой таблицы. Поддерживаются кириллические и латинские символы, цифры, а также спецсимволы (кроме одинарных и двойных кавычек);

    • Текст запроса - текст отправляемого запроса. Например, SELECT * FROM dimproduct
      Пример заполнения полей:

      Вы также можете задать произвольное JDBC-подключение. Для этого необходимо переключиться в режим работы со строкой, включив опцию Строка подключения, ввести необходимую строку и указать пароль:

      Строки подключения можно также обновить при редактировании источников или загрузчиков:

       

  5. Для проверки подключения нажмите Проверить в правом верхнем углу формы:

    При успешном подключении система оповестит об этом:

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

     

  6. После заполнения всех полей нажмите Загрузить в правом нижнем углу.

  7. Данные загрузятся на платформу Visiology и вы увидите таблицу на экране построения модели данных. В нашем примере у нас получилось следующее:

     

    Если данные не загрузились, нажмите F12 на клавиатуре, чтобы проверить прошла ли загрузка успешно. При успешной загрузке в консоли отобразится появится запись “Операция загрузки прошла успешно!”:

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

    • На сервере платформы найдите файл viqube2.json и добавьте в него строку "RefreshDataJob": {"Timeout": "00:00:00"}, указав необходимые часы и минуты. Например: "RefreshDataJob": {"Timeout": "03:00:00"}

    • Остановите платформу.

    • Выполните следующую команду: /var/lib/visiology/scripts/v3/prepare-config.sh --force-regenerate-configs

    • Запустите платформу.

  8. Подобным образом добавьте еще несколько таблиц, данные которых вы хотите проанализировать:

В панели Данные таблицы сортируются по алфавиту (или по возрастанию, если названия начинаются с чисел).

Для удобства пользователей платформа запоминает подключения к базам данных. При добавлении дополнительных таблиц в модель данных вы можете воспользоваться сохраненными подключениями. В этом случае вам не придется заново указывать параметры подключения. Все, что вам нужно будет сделать – это выбрать подключение из списка, указать название таблицы и написать текст запроса:

Булевые значения, содержащиеся в добавляемых таблицах, обрабатываются и записываются в базу данных как строковые значения. При необходимости передачи булевых значений в базу данных, вы можете изменить текст запроса, явно указав 1 или 0. Ниже пример запроса для PostgreSQL (для других СУБД он может быть другим):

select case when bool_column is true then 1 else 0 end as bool_column from bool_table

Булевые значения, содержащиеся в добавляемых таблицах, обрабатываются и записываются в базу данных как строковые значения. При необходимости передачи булевых значений в базу данных, вы можете изменить текст запроса, явно указав 1 или 0. Ниже пример запроса для PostgreSQL (для других СУБД он может быть другим):

select case when bool_column is true then 1 else 0 end as bool_column from bool_table

При загрузке данных с помощью JDBC следует учитывать, что если в запросе используется FULL JOIN, который объединяет данные таблиц, то в результате слияния могут появиться пустые ячейки, которые заполняются значением null. При этом, если в предложении SELECT используется колонка, которая не допускает использование значений null, то данные не загрузятся. 

В данной ситуации, для успешной загрузки данных, в запросе необходимо использовать функцию coalesce, которая заменит null на пустую строку в поле. Например, для загрузки колонки brandname с отсутствующими значениями, в запросе необходимо указать select coalesce(brandname, '''') вместо select brandname.
Пример запроса:

  • select * from jdbc( 'jdbc:postgresql://84.252.140.141:5432/postgres?user=postgres&password=', 'postgres', 'select coalesce(brandname, ''''), brands.key as "bk", salesamount, facts.key as "fk" from brands full join facts on brands.key = facts.key;');

При отправке SQL-запроса вы можете добавлять комментарии. Поддержка комментариев реализована с учетом диалектов наиболее популярных баз данных:

  • MySQL

  • MariaDB

  • PostgreSQL

  • SQL Server

  • Oracle

  • SQLit

  • DB2

  • HSQLDB

  • Teradata

  • Greenplum

  • SAP HANA

  • ClickHouse

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

Пример запроса с комментарием:

SELECT * FROM delivery; /* Загружает все данные из таблицы "delivery". */

Редактирование загрузчиков

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

Для редактирования загрузчика (т.е. параметры для загрузки конкретной таблицы) необходимо выполнить следующие шаги:

  1. Откройте набор данных, в котором вы хотите отредактировать загрузчик. В нашем примере это Магазин:

     

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

     

  3. В открывшемся диалоге внесите необходимые изменения и нажмите Сохранить:

    Теперь при обновлении набора данных будут использованы обновленные параметры.
    Подобным образом вы можете обновить параметры загрузчика на экране создания дашборда, нажав на кнопку с тремя точками напротив требуемой таблицы и выбрав Редактировать загрузчик в выпадающем меню:

Редактирование и удаление источников

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

  1. Откройте набор данных, в котором вы хотите отредактировать источник и нажмите Данные > Источники в левом верхнем углу:

  2. В появившемся окне нажмите кнопку с изображением карандаша напротив источника, который вы хотите отредактировать:

  3. В открывшемся диалоге внесите необходимые изменения и нажмите Сохранить:

Теперь при обновлении набора данных будут использованы обновленные параметры.

При необходимости удалить источник, просто нажмите кнопку с изображением корзины напротив источника, который вы хотите удалить, а затем подтвердите удаление в всплывающем диалоге:

Просмотр загруженных таблиц

Загруженные таблицы также отображаются в панели Поля в правой стороне экрана:

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

Для просмотра данных в загруженных таблицах перейдите в режим просмотра данных, нажав на соответствующую кнопку в левой стороне экрана, и выберите таблицу, данные которой вы хотите просмотреть:

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

Удаление таблицы из модели

Для удаления таблицы из модели данных, выполните следующие шаги:

  1. Нажмите кнопку с тремя точками напротив таблицы, которую вы хотите удалить.

  2. Во всплывающем меню выберите Удалить

  3. Нажмите Удалить в диалоге подтверждения:

     

Дальнейшие шаги

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


Смотрите также

Установка JDBC драйверов
Ускорение загрузки данных
Формирование модели данных для визуализации
Создание мер
Создание дашбордов