CSV-Uploader - модуль витрины данных, предназначенный для выгрузки шаблонов файлов из витрины, и загрузки пользовательских данных в витрину в форматах CSV/XML.
Для ознакомления с принципом работой инструмента, предлагается:
- создать тестовую БД с таблицами;
- загрузить данные в таблицу.
Создание тестовой БД и таблиц
SELECT * FROM INFORMATION_SCHEMA.schemata WHERE schema_name = UPPER('test_upload_data_csv'); |
2. Результат запроса должен быть пустой.
3. Подготовьте XML-файл (назовем его MetadataRequest_test_upload_data_csv.xml) со следующим содержанием:
<?xml version='1.0' encoding='utf-8'?> <ns:PODDMetadataRequest xmlns:ns="urn://x-artefacts-podd-gosuslugi-local/metadata/datamart/2/1.6.0" xmlns:ns1="urn://x-artefacts-podd-gosuslugi-local/metadata/types/1.3"> <ns:requestId>00000000-0000-0000-0000-000000000001</ns:requestId> <ns:metadata> <ns1:datamart> <ns1:id>1806436d-437a-400d-b32e-aa15c1a2d4bc</ns1:id> <ns1:mnemonic>test_upload_data_csv</ns1:mnemonic> <ns1:description>test_upload_data_csv</ns1:description> <ns1:tenantId>c52f062e-af97-4a44-a33f-d1a94024d0cf</ns1:tenantId> <ns1:version> <ns1:major>1</ns1:major> <ns1:minor>0</ns1:minor> </ns1:version> <ns1:supportedFrom>2021-01-01T00:00:00</ns1:supportedFrom> <ns1:datamartClass> <ns1:id>76268090-60ee-4960-8268-1b91f4186e87</ns1:id> <ns1:mnemonic>Trip</ns1:mnemonic> <ns1:description>Trip</ns1:description> <ns1:classAttribute> <ns1:id>bd173e24-ea7e-4869-9d43-9f57f5b0a82f</ns1:id> <ns1:mnemonic>Id</ns1:mnemonic> <ns1:description>Id</ns1:description> <ns1:type>STRING</ns1:type> </ns1:classAttribute> <ns1:classAttribute> <ns1:id>1ed32816-8bdb-4d35-9f66-8c08df13ad28</ns1:id> <ns1:mnemonic>Trip_Number</ns1:mnemonic> <ns1:description>Trip_Number</ns1:description> <ns1:type>INTEGER</ns1:type> </ns1:classAttribute> <ns1:classAttribute> <ns1:id>78f587fa-b53e-4912-b631-0c4a249d20b6</ns1:id> <ns1:mnemonic>Duration</ns1:mnemonic> <ns1:description>Duration</ns1:description> <ns1:type>STRING</ns1:type> </ns1:classAttribute> <ns1:classAttribute> <ns1:id>1750c564-20a7-4e07-988a-b382227123e4</ns1:id> <ns1:mnemonic>Length</ns1:mnemonic> <ns1:description>Length</ns1:description> <ns1:type>FLOAT</ns1:type> </ns1:classAttribute> <ns1:primaryKey> <ns1:id>1ed32816-8bdb-4d35-9f66-8c08df13ad28</ns1:id> <ns1:mnemonic>Trip_Number</ns1:mnemonic> <ns1:description>Trip_Number</ns1:description> <ns1:type> <ns1:id>00000000-0000-0000-0000-000000000002</ns1:id> <ns1:value>INTEGER</ns1:value> </ns1:type> </ns1:primaryKey> </ns1:datamartClass> </ns1:datamart> </ns:metadata> </ns:PODDMetadataRequest> |
4. Откройте web-интерфейс CSV-uploader (http://{host}:8080).
5. Во вкладке Загрузка структуры в поле выбора файла xml для загрузки в витрину выберите XML-файл MetadataRequest_test_upload_data_csv.xml, созданный в п.3.
6. Нажмите кнопку Загрузить.
7. В случае успешной загрузки, отобразится сообщение: Структура витрины успешно создана.
8. Откройте приложение Dbeaver, установите подключение к БД витрины и проверьте, что логическая БД test_upload_data_csv создана. Для этого выполните запрос:
SELECT * FROM INFORMATION_SCHEMA.schemata WHERE schema_name = UPPER('test_upload_data_csv'); |
SQL-запрос вернул одну строку, в которой поле SCHEMA_NAME имеет значение TEST_UPLOAD_DATA_CSV.
9. Убедитесь, что в созданной БД существует таблица Trip. Для этого выполните запрос к БД:
SELECT * FROM INFORMATION_SCHEMA.tables WHERE table_schema = UPPER('test_upload_data_csv'); |
SQL-запрос должен вернуть записи о созданной логической таблице
Загрузка данных в витрину
1. Откройте web-интерфейс CSV-uploader и перейдите на вкладку Выгрузить шаблон.
2. Скачайте CSV-файл (test_upload_data_csv.trip.csv).
3. Откройте скаченный файл test_upload_data_csv_trip.csv, на примере шаблона следует сформировать свой файл с данными для каждой из подготовленных таблиц БД.
id |
trip_number |
duration |
length |
a001 |
1 |
Moscow |
800 |
a002 |
2 |
Saratov |
680 |
a003 |
3 |
Omsk |
890 |
Сохраните и закройте файл.
4. Откройте web-интерфейс CSV-uploader и перейдите на вкладку Загрузка.
5. Выберите режим Вставка.
6. Установите переключатель в режим Автоматическое определение таблицы (в этом режиме таблицы будут определены по названию полей из загружаемых файлов).
7. В поле CSV выберите CSV-файл (test_upload_data_csv_trip.csv) для загрузки в БД.
8. Отобразится сообщение Отправка запроса на загрузку.
В случае успешной загрузки файла отобразится сообщение: Операция выполнена успешно.9. Для проверки загрузки данных откройте приложение Dbeaver и выполните следующий запрос к БД:
SELECT COUNT(*) FROM test_upload_data_csv.trip; |
SQL-запрос должен вернуть значение 3.
Автоматический запуск загрузки CSV-файлов по расписанию
Для настройки автоматического запуска загрузки CSV-файлов по расписанию, выполните следующие действия:1. Откройте web-интерфейс CSV-uploader и перейдите на вкладку Настройки.
2. В открывшемся окне в поле Запуск по расписанию, укажите время в Cron формате (например, 0 15 10? * * - загрузка файлов будет происходить каждый день в 10.15) и путь к каталогу с CSV-файлами.
3. Установите маркер в поле Включить, для активации автоматического запуска загрузки.
В случае успешного применения настроек отобразится информационное сообщение: Конфигурация успешно получена.