MS Access보다 큰 용량을 가진 데이터베이스 관리 프로그램이 있나요?

python   
   조회 1006   추천 0    

1600만 rows를 가진 csv 데이터가 있습니다.

excel에서는 행초과(104만 rows가 최대 용량?)로 열리지 않고,

access를 사용할 경우 excel과 연결 테이블(excel과 단순 연동)로 불러와 읽는 것은 가능한데,

수정을 하려고 excel에서 데이터를 불러와 별도로 access 안에 테이블을 생성할 경우 2gb 용량 초과로 불가능하더라구요.


일단 python 코드 상으로 불러오려고 했는데, 모든 데이터가 콤마(,)로만 분리된 것이 아니라 일부는 "|" 기호로 분리되어 있고,

일부 문자 호환성오류 (예, a위에 도트 엑센트 두개가 붙은 a'' 이런 문자들이 깨져서 한글로 나옴) 때문에

python 코드 상에서 바로 csv가 읽히지 않습니다.


데이터 전처리를 해야할 것 같은데 access보다 큰 데이터를 수정할 수 있는 소프트웨어가 있을까요? 

짧은글 일수록 신중하게.
https://code.tutsplus.com/ko/tutorials/quick-tip-how-to-read-extremely-large-text-files-using-python--cms-25992
이런식으로 읽을수있지 않나요?
그리고,대용량은 access보다 sqllite가 확장성이나 성능면에서 좋을겁니다
엠브리오 05-09
SQLITE 가 안되면 MySQL, 그거 가지고도 안되면 PostgreSQL ?
양철괭이 05-09
일단은 구분기호와 상관없이 자리수가 일정하다면 아무 디비에서나 다 가능할듯 싶은데..
access로 입력시 조건절을 사용해서 분리해 입력방법도 있을것 같습니다. ms sqlserver도 소기업용 무료버젼도 있기는 합니다.
SSMS의 가져오기 기능으로 해보세요
여기서 access로 가져오기 기능이 있지 않을까하네요
SSMS는 무료라 상관없을겁니다
다만, etl툴이긴하나, 실행파일로 만들수 있을겁니다
이게 ms제품이라 Ms것과는 잘 붙을겁니다
아마도.......
웬만한 DBMS라면 그 정도 레코드는 충분히 처리가능합니다. mysql이나 마리아, postgress등등 다만 UI툴이 문제긴 한데, 저는 마리아에 mysql 워크벤치를 섞어서 쓰고 있습니다. 아주 잘 됩니다. (마리아의 기본 UI툴은 쉬레기 같아요..)

가능하면 MSSQL도 좋다고 생각합니다. 비주얼 스튜디오에 따라오는 라이트 버전이라도 될 것 같아요.
MS SQL Server Express Edition을 사용하시는게 제일 편할껍니다.
상업적 목적으로도 무료사용이 가능합니다.
엠브리오 05-09
업체에 매여 있는 데이터베이스 프로그램들은 갈수록 정이 떨어져서..
MySQL의 경우에도 모 업체로 넘어간 이후 라이센스 문제로 시끄러워진 상황이라,
나중에 문제꺼리를 만들지 않기 위해, "고객"이 반드시 해달라고 요청하지 않는 이상 다 제외시킵니다.
python 05-09
대학원생인데 데이터나 전산쪽 전공이 아니라 걸쳐서 하려니까 해당 분야에서 매번 아는게 부족하네요. 많은 답변 감사합니다. sqlite랑 mySQL 좀 알아봐야겠네요.
     
엠브리오 05-09
많은 양의 데이터를 다루는데는 여러가지 방법이 있지만,
데이터베이스를 이용하기 위해서는 SQL을 배워두는게 좋습니다.

http://www.sqlitetutorial.net

INSERT 데이터 입력 - http://www.sqlitetutorial.net/sqlite-insert/
SELECT 데이터 검색 - http://www.sqlitetutorial.net/sqlite-select/
UPDATE 데이터 수정 - http://www.sqlitetutorial.net/sqlite-update/
DELETE 데이터 삭제 - http://www.sqlitetutorial.net/sqlite-delete/

위 네가지가 기본이고 나머지는 필요에 따라 추가로 익히면 됩니다.

http://www.sqlitetutorial.net/sqlite-import-csv/
무아 05-09
>>수정을 하려고 excel에서 데이터를 불러와 별도로 access 안에 테이블을 생성할 경우 2gb 용량 초과로 불가능하더라구요.
무서운 시도 입니다.
수정을 하려면 해당 데이터만 추려서(SELECT) 수정하고 업데이트 해야합니다.
아무리 디비성능이 좋다고한들 데이터 전부를 메모리에 올리려는 시도는 않는게 좋아요.
데이터 전처리라고 하셨는데... 어떠한 전처리를 해야하는 건지에 따라 대용량 db 프로그램을 쓰더라도 늪속에 빠질 수 있습니다.
그 전처리라는 것이 어떤 작업인가요?
     
python 05-10
말씀 감사합니다. access도 실제로 필요해 써본적은 처음이라 몰랐는데, mySQL를 좀 알아보니, 말씀하신대로 해당 변수만 select해서 불러온 뒤 작업하는 것이 맞는 것 같습니다.

사실 데이터 상에 특수문자들(예, a 위에 dot가 두개 엑센트 달린 a''  <- 이것과 같이 영문에 도트 엑센트 붙은 것들을 뭐라해야하는지는 모르겠네요) 이런것들이 access 상에서 글씨가 깨져 쵗 <- 이런식으로 나타나더라구요). python 코드 상에서도 특수 문자 때문에 바로 csv를 읽어오는 것이 잘 안됬는데, 찾아보니 python 상에서 csv  load할 때 utf-8 encoding하면 특수문자도 안깨지고 불러올수 있길레 이쪽으로 해보고 있습니다.

말씀주셔서 감사합니다.
          
무아 05-10
독일어 배울땐 그걸 움라우트라고 불렀던 거 같습니다
https://www.google.com/search?client=firefox-b-d&q=%EC%9B%80%EB%9D%BC%EC%9A%B0%ED%8A%B8
김제연 05-10
근데 .. 1600만 로우여도 .. 2gb가 넘는게 이상합니다.. 엑셀에도 들어갈 정도의 크기이면..
mdb 파일이 2기가가 넘어가지 않을것 같은데 말이죠 ..
     
python 05-10
*비밀글입니다
          
김제연 05-10
*비밀글입니다
               
python 05-10
*비밀글입니다
                    
김제연 05-10
ㅎㅎ 찾아보시면.. python 이 .. 인코딩 문제가 아주 골머리 아픕니다..
2버전에서는 완전 복잡했는데
3버전 와서는 그래도 괜찮아 진걸로 알고 있습니다.




QnA
제목Page 84/4502
2014-05   2825957   정은준1
2015-12   12156   백메가
06-05   969   이민우에요
06-05   912   아는게없음
06-05   718   임상현lsh
06-04   744   봉래
06-04   828   흥마
06-04   660   금콩커피달…
06-04   1053   신은왜
06-04   863   나너우리
06-04   848   최시영
06-04   708   차영재
06-04   801   박재우
06-04   737   사식이
06-04   671   일리케
06-04   766   삶은계란
06-04   850   정의석
06-04   808   이지포토
06-04   610   구차니
06-04   1261   extra
06-04   827   잘하자
06-04   643   NGC