
Coloque-o no local adequado, se necessário. Não tenho certeza de onde posso obter a melhor resposta.
Preciso criar um aplicativo de relatórios e gostaria de fazer isso com o Ubuntu, se possível. Os dados originados vêm de um aplicativo baseado em dispositivo que pode enviar periodicamente por FTP um arquivo de log delimitado para um local designado. Eu gostaria de desenvolver um mecanismo para usar esses dados para atualizar um banco de dados MySQL (a ser criado) que será usado para construir relatórios agendados que serão eventualmente enviados por e-mail para vários grupos de distribuição (seja como PDFs formatados em Excel). Temos inteligência interna para criar as várias consultas MySQL (e para projetar o banco de dados), mas não temos o conhecimento do Linux/Ubuntu como determinar a melhor abordagem. Estamos fazendo algo semelhante para outro aplicativo do lado do Windows usando Crystal Reports, mas dada a necessidade de distribuir este aplicativo, adoraríamos não ter que lidar com custos de licenciamento do Windows, etc.
Preciso de aconselhamento sobre as ferramentas/abordagem adequadas, mas também de recomendações sobre onde posso encontrar recursos qualificados que possam fazer isso de forma eficaz, sem custos significativos.
Responder1
Você pode analisar comandos da linha de comando com a seguinte sintaxe:
mysql -u {user} -p{password} {database} <{text.file}
Isso analisará todas as linhas de {text.file} para {database}. O arquivo de texto precisa conter instruções válidas do MySQL e a senha é mostrada em texto simples, ps
então você pode querer inseri-la my.cnf
(a segurança está em primeiro lugar).
2 métodos...
Você pode usar o comando MySQLCarregar dados(veja link para mais opções):
CARREGAR DADOS [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE {text2.file} INTO TABLE {table}
dentro de text.file para inserir um arquivo de texto em uma tabela. Isso provavelmente substitui as linhas existentes, portanto você precisará criar novos arquivos sempre. LOAD DATA é muito rápido. Caminho mais curto (uma linha do comentário de Caesium):
mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
Você pode colocar muitos
INSERT INTO
's no text.file. Isso é mais lento que LOAD DATA, mas pode ser mais fácil de implementar.