
Переместите это в нужное место, если необходимо. Не уверен, где я могу получить лучший ответ.
Мне нужно создать приложение для создания отчетов, и я хотел бы сделать это с помощью Ubuntu, если это возможно. Исходные данные поступают из приложения на базе устройства, которое может периодически отправлять по FTP файл журнала с разделителями в указанное место. Я хотел бы разработать механизм использования этих данных для обновления базы данных MySQL (которая будет создана), которая будет использоваться для создания запланированных отчетов, которые в конечном итоге будут отправляться по электронной почте различным группам рассылки (как в формате PDF, так и в формате Excel). У нас есть внутренние умные возможности для создания различных запросов MySQL (и для проектирования базы данных), но у нас нет Linux/Ubuntu, которые бы знали, как определить наилучший подход. Мы делаем что-то похожее для другого приложения на стороне Windows, используя Crystal Reports, но, учитывая необходимость распространения этого приложения, было бы здорово не иметь дело с расходами на лицензирование Windows и т. д.
Мне нужен совет по правильным инструментам/подходу, а также рекомендация, где я могу найти квалифицированных специалистов, которые могут сделать это эффективно и без значительных затрат.
решение1
Вы можете анализировать команды из командной строки, используя следующий синтаксис:
mysql -u {user} -p{password} {database} <{text.file}
Это проанализирует все строки из {text.file} в {database}. Текстовый файл должен содержать допустимые инструкции MySQL, а пароль отображается в виде обычного текста, ps
поэтому вы можете захотеть вставить его my.cnf
(безопасность превыше всего).
2 метода...
Вы можете использовать команду MySQLзагрузить данные(дополнительные параметры см. по ссылке):
ЗАГРУЗИТЬ ДАННЫЕ [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE {text2.file} В ТАБЛИЦУ {table}
внутри text.file, чтобы вставить текстовый файл в таблицу. Это, вероятно, перезапишет существующие строки, поэтому вам придется каждый раз создавать новые файлы. LOAD DATA очень-очень быстрый. Более короткий способ (однострочный из комментария Caesium):
mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
Вы можете поместить много
INSERT INTO
' в текстовый файл. Это медленнее, чем LOAD DATA, но может быть проще в реализации.