- 배경
- JDBC? ODBC? 공통점
- 차이점
배경
AWS Redshift 커넥터
df_user_session_channel = spark.read \
.format("jdbc") \
.option("driver", "com.amazon.redshift.jdbc42.Driver") \
.option("url", "jdbc:redshift://HOST:PORT/DB?user=ID&password=PASSWORD") \
.option("dbtable", "raw_data.user_session_channel") \
.load()
세션채널 읽어오는 과정중 Redshift를 JDBC드라이버로 연결하면서 의문이 생겼었다.
그리고, SparkSQL 을 사용하면서 파일로 저장하는 것보다 Spark 테이블로 처리하는 것의 장점으로 JDBC/ODBC등으로 Spark을 연결해서 접근할 수 있고 Tableau, PowerBI등을 함께 사용할 수 있다고 해서 알아보게 되었다.
JDBC? ODBC? (Java / Open Database Connectivity)
둘 다 애플리케이션을 데이터베이스에 연결하는 데 사용되는 API 표준이다.
ODBC는 일반적인 API 표준이므로 다양한 프로그래밍 언어에서 사용할 수 있지만 JDBC는 Java 전용이며 데이터베이스 액세스를 위한 Java 기반 인터페이스를 제공한다.
차이점
차이점을 표로 나타내보면 아래와 같다.
ODBC | JDBC |
ODBC는 개방형 데이터베이스 연결을 의미함. | JDBC는 Java 데이터베이스 연결을 나타냄. |
1992년 마이크로소프트에서 소개됨. | 1997년 SUN Micro Systems에서 출시됨. |
C , C++ , Java 등과 같은 모든 언어에 ODBC를 사용할 수 있다. | JDBC는 Java 언어에만 사용할 수 있음. |
Windows 플랫폼에서만 ODBC를 사용할 수 있다. | 모든 플랫폼에서 JDBC를 사용할 수 있음. |
대부분 ODBC 드라이버는 C, C++ 등의 기본 언어로 개발된다. | JDBC는 Java 데이터베이스 연결을 나타냄. |
Java 애플리케이션의 경우 내부 변환으로 인해 성능이 저하되고 애플리케이션이 플랫폼에 종속되므로 ODBC를 사용하지 않는 것이 좋다. | Java 애플리케이션의 경우 성능 및 플랫폼 종속 문제가 없으므로 JDBC를 사용하는 것이 좋음. |
ODBC는 절차적임. | JDBC는 객체 지향적임. |
ODBC는 JDBC에 비해 다루기가 쉽지않고 복잡하고 보안적인 측면에서도 JDBC는 유저가 시스템에 직접 시스템 설정에 닿을 수 없기 때문에 ODBC에 비해 안전하다고 한다.
또한, ODBC는 커뮤니티와 사용자에 대한 지원에 대해 (JDBC에 비해 비용이 많이 들지만) 더 넓은 범위의 커뮤니티와 유료 지원을 제공한다. 일반적으로 모든 ODBC 버전은 장기적인 고객 지원을 제공하는 데 사용된다고 한다.
https://www.geeksforgeeks.org/difference-odbc-jdbc/
https://www.educba.com/jdbc-vs-odbc/
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
'기타' 카테고리의 다른 글
[Debezium] 데베지움 오픈소스에 기여하기 (2) | 2024.05.05 |
---|---|
SQL Window함수 - 그룹 내 행 순서 관련 함수, 순위함수 (0) | 2023.09.05 |
레코드 가져오는 SQL 함수 fetchone? fetchall? (0) | 2023.08.30 |
트랜색션 SQL (ACID 원칙) (4) | 2023.08.29 |
Linux Daemon 프로세스 (0) | 2023.08.24 |