Greenplum DB, Postgresql DB에 사용할 수 있는 오픈소스 database tool DBeaver 설치 및 사용 방법
Greenplum and PostgreSQL Database 2019. 3. 4. 20:38이번 포스팅에서는 Greenplum Database, Postgresql Database에 사용할 수 있는 오픈소스 Database Tool인 DBeaver 설치, 사용법을 소개하겠습니다.
그동안 PostgreSQL tool인 pgAdmin4 를 썼는데요, DBeaver가 더 나은 것 같아서 갈아 탔습니다.
DBeaver는 PostgreSQL, Greenplum DB 외에도 MySQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Derby 등의 Database에도 사용할 수 있으므로 활용도가 매우 높습니다. 물론 오픈소스니깐 공짜로 그냥 설치해서 사용하면 됩니다.
* 출처: https://dbeaver.io/
1, Mac OSX 에 DBeaver Community Edition (ver 5.3.5) 설치하기 |
저는 Brew 를 이용해서 설치했습니다.
1. 터미널을 엽니다.
2. Brew 가 설치되어 있지 않으면 아래의 스크립트를 그대로 실행시키고, 맥북의 비밀번호를 입력해주세요. 만약 Brew 를 이미 설치하셨다면 2번은 건너뛰고 3번만 실행시키면 됩니다.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null |
3. 터미널 창에 brew cask install dbeaver-community 를 실행합니다.
MacBook-Pro:~ user$ brew cask install dbeaver-community Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> New Formulae cafeobj gnunet homeassistant-cli re-flex sd v2ray-plugin gloo-ctl h3 i386-elf-grub riff serve ==> Updated Formulae git ✔ cdogs-sdl gcc nwchem kubernetes-helm ✔ cfengine gdk-pixbuf odpi pcre ✔ cflow geckodriver offlineimap abcde cfr-decompiler gecode ohcount abcmidi cglm geocode-glib openssl@1.1 activemq-cpp chakra gerbil-scheme paket aescrypt-packetizer check_postgres get_iplayer pandoc afflib checkstyle git-lfs pandoc-citeproc afio chkrootkit gitlab-runner parallel agedu cli53 glslang passenger algernon click gnu-tar pdftoedn amqp-cpp closure-compiler go petsc angular-cli cmark-gfm godep petsc-complex annie cocoapods golang-migrate pgweb ansible cointop gomplate phoronix-test-suite apache-arrow collector-sidecar goreleaser php@7.1 apache-arrow-glib commandbox grafana picard-tools apache-flink conan grpc planck app-engine-java configen gwyddion plank apt-dater confluent-oss gx pmd arangodb consul-template gx-go ponyc aravis convox handbrake pre-commit arm-linux-gnueabihf-binutils coturn helmfile presto armadillo couchdb hub primesieve arpack cpprestsdk i386-elf-binutils prometheus artifactory cproto ibex protobuf asciidoctorj crc32c imagemagick protobuf-c asio cryptominisat ipfs protobuf-swift ask-cli cryptopp jdupes protoc-gen-go atkmm cscope jenkins pulumi ats2-postiats csfml jhipster redis@4.0 auditbeat cython joplin rhash aurora czmq kibana@5.6 rust autogen darcs kitchen-sync sbcl avfs dartsim kompose sfml aws-sdk-cpp davix kops shadowsocks-libev awscli dcd kube-ps1 shellz axel ddrescue kubeprod ship azure-cli deark kubernetes-cli siege azure-storage-cpp debianutils kustomize simutrans babeld deja-gnu lcov singular babl deployer ldc skaffold backupninja dhex lean-cli sn0int bacula-fd dialog leiningen solr balena-cli diffoscope libgweather spotbugs batik diffstat libheif sqlmap bazel digdag libphonenumber step bee dita-ot libpulsar supersonic befunge93 django-completion libqalculate svgo bettercap docfx librealsense swagger-codegen bgpstream docker libsecret swagger-codegen@2 bibtexconv docker-completion libtensorflow swiftformat bigloo dovecot libxlsxwriter swiftlint binaryen dpkg linkerd terragrunt bind draco liquibase tgui bindfs dscanner lmod thors-serializer bit dub logtalk tippecanoe blastem duck lzlib tmux-xpanes bluetoothconnector dwdiff maxwell topgrade bmake dwm mesa typescript boxes dyld-headers metricbeat unrar brew-php-switcher dynamips minio-mc vagrant-completion bro eccodes mkl-dnn vault buildifier elasticsearch mosh wabt burp elasticsearch@5.6 mosquitto wtf bwm-ng elektra mysql@5.6 xmrig bzt emscripten ncompress xtensor c-blosc erlang@20 nginx yara caffe eslint nifi ydcv calabash exploitdb node yle-dl calcurse fabio node-build you-get calicoctl flake8 node@10 youtube-dl carrot2 fn node@6 zbackup cassandra@2.1 frugal node@8 cassandra@2.2 fx ntopng cdk gambit-scheme numpy ==> Tapping homebrew/cask Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'... remote: Enumerating objects: 4086, done. remote: Counting objects: 100% (4086/4086), done. remote: Compressing objects: 100% (4075/4075), done. remote: Total 4086 (delta 24), reused 442 (delta 8), pack-reused 0 Receiving objects: 100% (4086/4086), 1.31 MiB | 593.00 KiB/s, done. Resolving deltas: 100% (24/24), done. Tapped 1 command and 3985 casks (4,093 files, 4.2MB). ==> Caveats dbeaver-community requires Java 8+. You can install the latest version with brew cask install java ==> Satisfying dependencies ==> Downloading https://github.com/dbeaver/dbeaver/releases/download/5.3.5/dbeaver-ce-5.3.5-macos.dmg ==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/44662669/a1006c00-3315-11e9-84bc-679ab5a9b0aa?X-Amz-Algor ######################################################################## 100.0% ==> Verifying SHA-256 checksum for Cask 'dbeaver-community'. ==> Installing Cask dbeaver-community ==> Creating Caskroom at /usr/local/Caskroom ==> We'll set permissions properly so we won't need sudo in the future. Password: ==> Moving App 'DBeaver.app' to '/Applications/DBeaver.app'. 🍺 dbeaver-community was successfully installed! MacBook-Pro:~ user$ |
2. Java JDK 설치 하기 |
Java JDK 가 설치되어 있지 않으면 'Java JDK를 설치하세요'라는 메시지가 뜹니다. (JDK가 설치되어 있다면 2번은 건너뛰면 됩니다)
java 설치 여부 및 버전은 아래처럼 java -version 으로 터미널에서 확인해볼 수 있습니다. 저는 Java 가 없으니 설치가 필요(requesting install)하다고 메시지가 나오네요.
MacBook-Pro:~ user$ java -version No Java runtime present, requesting install. |
Oracle 의 아래 주소에서 macOS용 jdk-11.0.2_osx_x64_bin.dmg 파일을 다운로드 받았습니다.
[다운로드 주소] https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html |
Linux, macOS, Windows 중에서 자신의 OS에 맞는 것을 선택해서 다운로드 하면 됩니다. 이때 Oracle License Agreement 를 accept 한다고 체크를 해주어야 합니다.
jdk-11.0.2_osx-x64.dmg 파일이 다운로드 완료되면 아이콘을 더블 클릭해서 설치 애플리케이션을 시작합니다. 가운데 아이콘을 클릭한 다음에 '계속' 단추를 누르면서 설치를 합니다. 맥북 비밀번호 입력하라는 창이 뜨면 비밀번호를 입력해주면 설치가 완료됩니다.
JDK가 잘 설치되었는지 java -version으로 확인해보겠습니다.
MacBook-Pro:~ user$ java -version java version "11.0.2" 2019-01-15 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode) |
3. Docker로 Greenplum DB 설치하고 실행하기 |
자세한 내용은 아래의 블로그 포스팅과 Docker Hub를 참고하시기 바랍니다.
==> https://rfriend.tistory.com/379
==> https://hub.docker.com/r/hdlee2u/gpdb-analytics
(터미널 사용) ## Docker 이미지 내려 받기 $ docker pull hdlee2u/gpdb-analytics ## Docker 이미지 확인 하기 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hdlee2u/gpdb-analytics latest 3be773a1a7e1 About a minute ago 4.93GB ## Docker 이미지를 실행/ 5432를 기본 포트로, ssh를 2022포트를 사용하여 접근 가능하도록 Docker 컨테이너 생성 $ docker run -i -d -p 5432:5432 -p 28080:28080 --name gpdb-ds --hostname mdw hdlee2u/gpdb-analytics /usr/sbin/sshd -D ## Docker 컨테이너 목록 확인 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7518fd48450a 575a7d45999d "/bin/bash" 1 minute ago Up 6 hours 0.0.0.0:5432->5432/tcp, 0.0.0.0:28080->28080/tcp gpdb-ds ## Start GPDB and Use psql $ docker exec -it gpdb-ds /bin/bash [root@mdw /]# su - gpadmin [gpadmin@mdw ~]$ gpstart -a |
4. DBeaver 실행하고, Greenplum DB 연결 설정하기 (GPDB connect) |
맥북의 Launchpad에서 DBeaver 아이콘을 클릭하면 아래와 같은 DBeaver가 실행됩니다. 'Select your database' 화면창에서 'PostgreSQL'을 선택하고 '다음(Next)'을 선택합니다.
Connection Settings 화면이 나오면 (3번에서 소개한 docker image 로 Greenplum DB를 론칭한 경우)
- Host: localhost
- Database: gpadmin
- User: gpadmin
- Password: pivotal
- Port: 5432
로 입력해주세요. 만약 다른 환경의 Greenplum DB를 사용하고 있다면 그에 맞게 Host, Database, User, Password를 설정해주면 됩니다.
Greenplum Database에 DBeaver tool이 제대로 연결이 되면 아래 화면처럼 왼쪽 분할면에 Database, Schema, Tables 네비게이터가 나타나고, 테이블을 하나 선택하면 오른쪽는 Data 셋을 Grid나 Text 형태로 볼 수 있습니다.
(테이블의 데이터 사이즈가 엄청 큰 경우에는 테이블을 클릭해서 Data 보기를 하지 마시기 바랍니다. DB가 다운되어서 DB관리자에게 요주의 인물로 찍히는 수가 있습니다. SQL Editor 창에서 select 문으로 limit 걸어서 조회하시기 바랍니다.)
SQL Editor 는 상단 메뉴에서 'SQL Editor'를 선택하거나, 또는 상단 메뉴바에서 '말아놓은 종이모양 아이콘'을 클릭하면 됩니다.
SQL select 문을 쓸 때 from 절의 테이블 이름은 좌측 분할면의 Navigator 창에서 해당 테이블을 마우스로 드래그 & 드랍해서 SQL Editor의 from 절 다음에 가져다 놓으면 schmema_name.table_name 이 자동으로 써지므로 편리하게 이용할 수 있습니다.
SQL Editor에 쓴 SQL query를 실행할 때는 'control(^) + enter' 를 누르거나, SQL Editor 창의 세모 (아래 화면 캡쳐의 빨간색 부분) 아이콘을 누르면 됩니다.
이상으로 DBeaver 설치 및 DBeaver를 Greenplum Database에 연결하고 DB, Schema, Table 보기 및 Query 실행하는 방법에 대해서 알아보았습니다.
많은 도움이 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요.