본문 바로가기
Tableau 흡수내용

[pantab]pantab으로 dataframe을 hyper로 변환하고 서버에 게시하자

by Mr.noobiest 2022. 4. 5.

pantab을 사용하면 간단하게 Pandas의 dataframe을 hyper 파일로 다운로드 받고 바로 서버에 게시할수 있다.

 

 

#pantab 설치방법

!pip install pantab

 

#pantab과 같이 깔아야할 라이브러리 tableauhyperapi 설치

#주의사항 : 현재 tableauhyperapi와 pantab의 버전 충돌 문제가 있다(2022_04_05기준) 0.0.14401로 설치하면 정상작동한다.

!pip install tableauhyperapi==0.0.14401

 

 

 

 

 

#dataframe을 hyper 파일로 변경 + 저장하기

import pantab

pantab.frame_to_hyper(hyper로 변경할 dataframe  , "경로/파일명.hyper" , table = "본인이 원하는 데이터 테이블명 " )

 

#경로상에 hyper 파일이 생성되어 있을것이다.

 

# hyper 파일을 서버로 보내주기

# 1) 우선 해당 서버의 정보를 입력 (tableau_auth) 해준뒤

# 2) 해당 서버를 저장해줄 프로젝트의 id가 필요하다(project_id)

# 3) 2) 이때 프로젝트명은 상위 프로젝트명에 상관없이 server를 저장해줄 프로젝트명이다

(ex) 상위프로젝트 > 하위프로젝트 > hyper 일경우 "하위프로젝트_id"만 필요하다.

 

 

#tableauserverclient 라이브러리 설치

!pip install tableauserverclient 

 

import tableauserverclient as TSC

tableau_auth=TSC.TableauAuth("태블로 서버에 접속할때 쓰는 아이디", "비밀번호",site_id = '')

server = TSC.Server("태블로 서버 주소/ " , use_server_version=True)

server.auth.sign.sign_in(tableau_auth)

 

projectname = '프로젝트명'

print([(project.name, project_id) for project in TSC.Pager(server.projects) if project.name.startswith(projectname)])

 

 

 

# 위의 project_id를 사용하여 서버에 hyper파일을 업로드 하자

TS_CONFIG = {
        'my_env': {
                'server': '태블로 서버 주소',
                'api_version': 'api버전',
                'username': '태블로 서버에 접속할때 쓰는 아이디',
                'password': '비밀번호',
                'site_name': '',
                'site_url': ''
        }
}

 

##

conn = TableauServerConnection(config_json=TS_CONFIG, env='my_env')

 

conn.sign_in()

 

response = conn.publish_datasource(datasource_file_path='hyper파일이 저장되있는 경로.hyper',  
                                 datasource_name="서버에 저장시 명명될 데이터 원본명", 
                                 project_id="위에서 구한 project_id")

 

conn.sign_out()

 

 

 

##위의 절차대로 하면 dataframe을 hyper로 변경하고 해당 hyper파일을 태블로 서버에 게시할수 있다.

728x90
반응형