.csv 자동 처리에 대한 최선의 접근 방식 --> MySQL

.csv 자동 처리에 대한 최선의 접근 방식 --> MySQL

필요한 경우 이를 적절한 위치에 올려 놓습니다. 어디서 가장 좋은 반응을 얻을 수 있는지 잘 모르겠습니다.

보고 애플리케이션을 만들어야 하는데 가능하다면 Ubuntu를 사용하고 싶습니다. 원본 데이터는 구분된 로그 파일을 지정된 위치로 주기적으로 FTP로 전송할 수 있는 어플라이언스 기반 애플리케이션에서 제공됩니다. 나는 해당 데이터를 사용하여 다양한 배포 그룹에 이메일로 전송되는 예정된 보고서(Excel 형식의 PDF)를 작성하는 데 사용될 MySQL 데이터베이스(생성 예정)를 업데이트하는 메커니즘을 개발하고 싶습니다. 우리는 다양한 MySQL 쿼리를 생성하고 데이터베이스를 설계할 수 있는 내부 능력을 갖고 있지만 Linux/Ubuntu에서는 최선의 접근 방식을 결정하는 방법을 알지 못합니다. 우리는 Crystal Reports를 사용하여 Windows 측의 다른 응용 프로그램에 대해 비슷한 작업을 수행하고 있지만 이 응용 프로그램을 배포해야 하는 필요성을 고려하면 Windows 라이센스 비용 등을 처리할 필요가 없습니다...

적절한 도구/접근 방식에 대한 조언이 필요하고, 상당한 비용을 들이지 않고도 이 작업을 효과적으로 수행할 수 있는 자격을 갖춘 리소스를 어디서 찾을 수 있는지에 대한 권장 사항도 필요합니다.

답변1

다음 구문을 사용하여 명령줄에서 명령을 구문 분석할 수 있습니다.

mysql -u {user} -p{password} {database} <{text.file}

그러면 {text.file}에서 {database}까지의 모든 줄이 구문 분석됩니다. 텍스트 파일에는 유효한 MySQL 지침이 포함되어야 하며 비밀번호는 일반 텍스트로 표시되므로 ps해당 내용을 그대로 유지하는 것이 좋습니다 my.cnf(보안이 우선).

2가지 방법...

  • MySQL 명령을 사용할 수 있습니다데이터 로드(추가 옵션은 링크 참조):

    데이터 로드 [낮은_우선순위 | 동시] [LOCAL] INFILE {text2.file} INTO TABLE {table}

    text.file 내부에 텍스트 파일을 테이블에 삽입합니다. 이렇게 하면 기존 줄을 덮어쓰게 되므로 매번 새 파일을 만들어야 합니다. LOAD DATA는 매우 빠릅니다. 더 짧은 방법(Caesium의 의견에서 한 줄로 작성):

    mysql -u {user} -p {pass} -e "LOAD DATA {rest of command}" {db}
    
  • INSERT INTOtext.file에 '를 많이 넣을 수 있습니다 . 이는 LOAD DATA보다 느리지만 구현하기가 더 쉬울 수 있습니다.

관련 정보