Notice
Recent Posts
«   2024/12   »
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
Tags more
Archives
관리 메뉴

🐥

Python을 통해 impala 접속 본문

데이터/하둡

Python을 통해 impala 접속

•8• 2022. 3. 3. 13:40

pip 설치: https://quackstudy.tistory.com/13?category=801005

1. impyla 라이브러리 사용

#pip install impyla
from impala.dbapi import connect

HOST = "host_ip"
PORT = 21050 #default

conn = connect(host=HOST, port=PORT)
cursor = conn.cursor()

query = "select * from default.table1 where some condition"
cursor.execute(query)

conn.close()

2. pyodbc 라이브러리 사용

1) cloudera odbc driver for impala 설치

https://docs.informatica.com/data-integration/powercenter/h2l/1011-data-validation-option-integration-with-cloudera/data-validation-option-integration-with-cloudera/step-1--download-the-cloudera-odbc-driver-for-impala.html

위 링크에서 step3까지 진행 (아래에선 DSN: impala로 설정)

 

#pip install pyodbc
import pyodbc

INFO = {
    "DSN": "impala",
    "user": "user_name",
    "password": "user_password",
    "UseSASL": 0
}

connString = '''DSN={0};UID={1};PWD={2};UseSasl={3};AuthMech=3'''.format(INFO['DSN'],INFO['user'],INFO['password'],INFO['UseSASL'])
conn = pyodbc.connect(connString, autoCommit=True)
cursor = conn.cursor()

query = "select * from default.table1 where some condition"
cursor.execute(query)

conn.close()

sentry 사용 등 권한문제가 있을 경우에는 impala daemon 이 있는 접속하려는 서버에 동일 계정이 있어야 함

3. 참고

쿼리실행결과 전체 출력

cursor.execute(query)

for row in cursor:
    print('row = %r' % (row,))