내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS 환경 : Oracle Linux 8.4 (64bit)
DB 환경 : DuckDB
방법 : Oracle Linux 8.4에 DuckDB 설치 가이드
본문에서는 오라클 리눅스 8 버전에 DuckDB 를 설치하는 방법을 설명함
DuckDB 란?
DuckDB는 주로 임베디드 분석 워크로드에 초점을 맞춘 관계형 OLAP(Online Analytical Processing) 데이터베이스 관리 시스템임
DuckDB는 서버리스(serverless) 방식으로 작동하며, 사용자가 별도의 서버를 설정하거나 관리할 필요 없이 애플리케이션 내부에서 데이터베이스를 구동할 수 있음
이로 인해 로컬 환경이나 클라우드 환경 모두에서 매우 편리하게 사용할 수 있음
기능
1. 임베디드 분석
DuckDB는 애플리케이션 내부에서 직접 실행될 수 있음
서버 없이도 데이터베이스 작업을 수행할 수 있으므로, 사용자가 DB 관리 작업을 할 필요가 없음
2. 데이터 분석에 특화
DuckDB는 데이터 분석 작업, 특히 OLAP 쿼리에 최적화되어 있음
CSV, Parquet 등 다양한 형식의 데이터를 바로 쿼리할 수 있으며, 사용자는 별도로 데이터를 로드하지 않고도 필요한 데이터를 분석할 수 있음
3. SQL 쿼리 지원
DuckDB는 SQL 표준을 지원하여 사용자가 익숙한 SQL 구문을 이용해 데이터를 다룰 수 있음
데이터 쿼리와 변환을 위한 다양한 SQL 기능을 제공함
4. 빠른 속도와 효율성
DuckDB는 메모리 내에서 작동하도록 설계되었으며, 대규모 데이터셋을 처리하는데 있어서도 매우 빠른 성능을 보임
임베디드 시스템 환경에서 효율적인 성능을 발휘하도록 설계되어 있음
5. 다양한 통합 지원
DuckDB는 Python, R, C++, JavaScript와 같은 다양한 프로그래밍 언어와 쉽게 통합할 수 있어, 다양한 환경에서 데이터베이스 분석을 할 수 있음
DuckDB의 API를 사용하면 해당 언어에서 직접 데이터베이스 쿼리를 실행하고 결과를 처리할 수 있음
OS 설치는 아래 게시글 참고
참고 : Oracle Linux 8.4 설치 가이드 ( https://positivemh.tistory.com/761 )
필수 요구 패키지 설치
1
|
# dnf install -y git g++ cmake ninja-build openssl-devel
|
공식 링크에 방문하여 설치파일 다운로드
나의 경우 1.1.0 버전에 Command line, Linux, Direct download, x86_64를 선택한 뒤 Link 파일을 다운로드 받음
https://duckdb.org/docs/installation/
서버에 업로드 후 unzip
1
2
3
|
# unzip duckdb_cli-linux-amd64.zip
Archive: duckdb_cli-linux-amd64.zip
inflating: duckdb
|
duckdb 파일 실행 후 버전 확인
1
2
3
4
5
6
7
8
9
10
11
12
|
# ./duckdb
v1.1.0 fa5c2fe15f
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
D select version();
┌─────────────┐
│ "version"() │
│ varchar │
├─────────────┤
│ v1.1.0 │
└─────────────┘
|
정상적으로 설치?됨
(설치라기 보단 압축을 풀어서 실행만시켰지만 동작함)
명령어는 .{명령어} 이렇게 사용가능함
명령어 .help 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
D .help
.bail on|off Stop after hitting an error. Default OFF
.binary on|off Turn binary output on or off. Default OFF
.cd DIRECTORY Change the working directory to DIRECTORY
.changes on|off Show number of rows changed by SQL
.check GLOB Fail if output since .testcase does not match
.columns Column-wise rendering of query results
.constant ?COLOR? Sets the syntax highlighting color used for constant values
.constantcode ?CODE? Sets the syntax highlighting terminal code used for constant values
.databases List names and files of attached databases
.dump ?TABLE? Render database content as SQL
.echo on|off Turn command echo on or off
.excel Display the output of next command in spreadsheet
.edit Opens an external text editor to edit a query.
.exit ?CODE? Exit this program with return-code CODE
.explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto
.fullschema ?--indent? Show schema and the content of sqlite_stat tables
.headers on|off Turn display of headers on or off
.help ?-all? ?PATTERN? Show help text for PATTERN
.highlight [on|off] Toggle syntax highlighting in the shell on/off
.import FILE TABLE Import data from FILE into TABLE
.indexes ?TABLE? Show names of indexes
.keyword ?COLOR? Sets the syntax highlighting color used for keywords
.keywordcode ?CODE? Sets the syntax highlighting terminal code used for keywords
.log FILE|off Turn logging on or off. FILE can be stderr/stdout
.maxrows COUNT Sets the maximum number of rows for display (default: 40). Only for duckbox mode.
.maxwidth COUNT Sets the maximum width in characters. 0 defaults to terminal width. Only for duckbox mode.
.mode MODE ?TABLE? Set output mode
.nullvalue STRING Use STRING in place of NULL values
.once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE
.open ?OPTIONS? ?FILE? Close existing database and reopen FILE
.output ?FILE? Send output to FILE or stdout if FILE is omitted
.parameter CMD ... Manage SQL parameter bindings
.print STRING... Print literal STRING
.prompt MAIN CONTINUE Replace the standard prompts
.quit Exit this program
.read FILE Read input from FILE
.rows Row-wise rendering of query results (default)
.schema ?PATTERN? Show the CREATE statements matching PATTERN
.separator COL ?ROW? Change the column and row separators
.sha3sum ... Compute a SHA3 hash of database content
.shell CMD ARGS... Run CMD ARGS... in a system shell
.show Show the current values for various settings
.system CMD ARGS... Run CMD ARGS... in a system shell
.tables ?TABLE? List names of tables matching LIKE pattern TABLE
.testcase NAME Begin redirecting output to 'testcase-out.txt'
.timer on|off Turn SQL timer on or off
.width NUM1 NUM2 ... Set minimum column widths for columnar output
|
duckdb 나가기 .exit 를 입력하면 됨
1
2
3
|
D .exit
# pwd
/root
|
예시 쿼리 csv 파일 직접 읽기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# ls
duckdb duckdb_cli-linux-amd64.zip flights.csv
# ./duckdb
v1.1.0 fa5c2fe15f
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
D select * from 'flights.csv';
┌────────────┬───────────────┬────────────────┬─────────────────┐
│ FlightDate │ UniqueCarrier │ OriginCityName │ DestCityName │
│ date │ varchar │ varchar │ varchar │
├────────────┼───────────────┼────────────────┼─────────────────┤
│ 1988-01-01 │ AA │ New York, NY │ Los Angeles, CA │
│ 1988-01-02 │ AA │ New York, NY │ Los Angeles, CA │
│ 1988-01-03 │ AA │ New York, NY │ Los Angeles, CA │
└────────────┴───────────────┴────────────────┴─────────────────┘
|
참조 :
https://duckdb.org/docs/dev/building/build_instructions.html
https://github.com/duckdb/duckdb
https://duckdb.org/docs/data/csv/overview
'Others' 카테고리의 다른 글
[DB 관련 사이트 및 채팅방] (0) | 2024.04.17 |
---|---|
AIX 의 File Caching(File Cache) (0) | 2020.02.10 |
Solaris 11.3 유저 패스워드 lock 확인 및 해제 (0) | 2019.11.12 |
vb로 위행을 아래행으로 복사 (0) | 2018.12.07 |
네이버 메일 내게쓴 메일함 해킹? 스팸? this account has been hacked! Change all your passwords! (2) | 2018.11.20 |