AWS Glue에서 pg8000 driver를 사용하여 PostgreSQL의 RDS 인스턴스에 연결
5345 단어 pg8000RDSgluePostgreSQLAWS
Overview
AWS Glue의 스크립트에서 DynamicFrameWriter를 사용하여 할 수 있는 것보다 좀 더 세세한 일을 하고 싶었기 때문에, PostgreSQL의 RDS 인스턴스에 Python의 라이브러리로 접속하고 싶었다.
그 절차 참고.
Glue에서는 pure-Python 라이브러리 만 사용할 수 있습니다. 예를 들어 pandas와 같은 C 라이브러리는 지원되지 않습니다. 그래서 pg8000을 사용한다.
절차
절차
자세한 내용은
1. pg8000, scramp (의존에 필요) tar 파일 다운로드
pypi에서 tar를 다운로드 할 수 있기 때문에 로컬로 떨어집니다.
(pypi > "다운로드 파일")
이하 직접 링크
2. tar의 압축을 풀고 zip 만들기
떨어뜨린 tar 를 해동하면(자) , 안에 라이브러리 본체의 소스 코드가 있으므로 그것을 뽑아 zip 으로 한다.
pg8000
$ tar xzf pg8000-1.16.5.tar.gz --strip-components 1 pg8000-1.16.5/pg8000/
$ zip -r pg8000.zip pg8000
adding: pg8000/ (stored 0%)
adding: pg8000/_version.py (deflated 31%)
adding: pg8000/__init__.py (deflated 58%)
adding: pg8000/core.py (deflated 76%)
adding: pg8000/exceptions.py (deflated 77%)
adding: pg8000/converters.py (deflated 74%)
스크램프
$ tar xzf scramp-1.2.0.tar.gz --strip-components 1 scramp-1.2.0/scramp/
$ zip -r scramp.zip scramp
adding: scramp/ (stored 0%)
adding: scramp/_version.py (deflated 31%)
adding: scramp/__init__.py (deflated 41%)
adding: scramp/core.py (deflated 75%)
adding: scramp/utils.py (deflated 56%)
3. zip을 s3에 넣습니다.
여기에서는 만일 이하의 장소에 두었다고 한다.
s3://tommarute/python/lib/pg8000.zip
s3://tommarute/python/lib/scramp.zip
4. Glue job 설정, Python library path에 s3 경로 입력
아래에 입력.
여러이므로 쉼표로 구분합니다.
s3://tommarute/python/lib/pg8000.zip,s3://tommarute/python/lib/scramp.zip
이것으로 설정 완료
사용
후에는 보통 import 하고 사용하면 OK
예를 들면 이런 느낌
import pg8000
DSN = {
'host': 'postgres.xxxx.us-east-1.rds.amazonaws.com',
'port': 5432,
'database': 'ec',
'user': 'tommarute',
'password': 'secret'
}
table = 'my_contact'
with pg8000.connect(**DSN) as con:
res = con.run("SELECT count(*) FROM information_schema.tables WHERE table_name = :table", table=table)
table_count = res[0][0]
print(f'table_count of {table} = {table_count}')
사용법의 샘플은 pg8000의 Github 저장소에 풍부하게 실려 있다.
또한, Glue의 jupyter notebook에서 사용하고 싶은 경우는, Dev endpoints의 설정으로 상기 4로 실시한 설정을 하면 된다.
참고
Reference
이 문제에 관하여(AWS Glue에서 pg8000 driver를 사용하여 PostgreSQL의 RDS 인스턴스에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tommarute/items/7b1c2038a2925c7ca0b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)