아래와 같이 LOAD INFILE을 사용하여 txt 파일을 가져오려고 합니다.
LOAD DATA LOCAL INFILE '/home/xxxx/cloud_20181003.txt' INTO TABLE cloud_log_test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (CACHECACHESTATUS,CACHERESPONSEBYTES);
올바르게 가져오고 있습니다. 문제는 내 데이터가 키 값 형식이라는 것입니다. 따라서 셀을 삽입하면 "CacheCacheStatus":"unknown"
CacheCacheStatus 열과 유사하게 삽입됩니다. 이렇게 값을 별도로 저장해야 합니다 unknown
. 아래와 같이 대체 항목을 추가하려고 시도했지만 전체 셀이 비어 있는 것으로 삽입됩니다.
LOAD DATA LOCAL INFILE '/home/xxxx/cloud_20181003.txt' INTO TABLE cloud_log_test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (CACHECACHESTATUS,CACHERESPONSEBYTES) SET CacheCacheStatus = REPLACE(@CacheCacheStatus,'"CacheCacheStatus":"','');
답변1
내 쿼리에 "@"이 누락되었습니다. :-) 저는 지금 일하고 있어요.
LOAD DATA LOCAL INFILE '/home/xxxx/cloud_20181003.txt' INTO TABLE cloud_log_test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@CACHECACHESTATUS,CACHERESPONSEBYTES) SET CacheCacheStatus = REPLACE(@CacheCacheStatus,'"CacheCacheStatus":"','');