간단하고 일상적인 작업을 자동화하려고합니다 : MySQL 데이터베이스에서 가져 오려는 SFTP 서버에 여러 .csv 파일이 있습니다.매일 sftp에서 MySQL 데이터베이스로 .csv 파일 가져 오기
파일 이름은 20160601-1.csv, 20160601-2.csv, 20160601-3.csv 등과 같은 구조로되어 있습니다. 파일 수는 하루에 8에서 20까지 다양합니다. .csv의 레이아웃은 항상 동일합니다 (빈 칸이있는 열 10 개).
나는 이것이 매우 자세하지는 않지만 지금은 몇 시간을 찾고 있으며 어디서부터 시작해야할지 모른다.
나는 PHP가 이것을하는 좋은 방법이라고 생각하니? 아니면 파이썬인가?
을 읽을 수 fgetcsv() 함수
샘플 코드를 사용하여 PHP에서이 작업을 수행 할 수 있습니다. 당신은 아마 그것들 중 어떤 것을 달성 할 수 있습니다. 데이터를 DB에 저장하기 전에이 파일을 처리해야합니까? 아니면 단순히 MySQL에서 LOAD DATA INFILE ...을 사용할 수 있습니까? 그렇다면 간단한 bash 스크립트로 그렇게 할 수있을 것이다. –
@dragoste : 쉘에서 수행하는 경우 mysqlimport 유틸리티를 'LOAD DATA'보다 선호합니다. 그러나 그렇지 않으면 나는 방금 말한 모든 것에 동의합니다. – eggyal
@dragoste 탭으로 구분 된 파일이므로 처음 5 줄을 무시해야합니다. 탭 분리 된 파일에 내 경험을 때로는 빈 필드를 LOAD DATA 및 LOAD DATA INFILE 인해 문제가 발생합니다 (내가 생각하기 때문에?) 그래서 모든 탭 (/ t) 쉼표로 ens csv 가져 오기 mysql을 바꿉니다. 하지만 직접 가져올 수있는 옵션이 있다면 그것은 좋을 것입니다! – Glarp