Tableau Desktop (twb 파일)의 DB 연결 정보를 Python으로 다시 작성하는 방법
Publish 후에 일일이 수동으로 데이터 소스의 연결 설정을 다시 쓰는 것은 번거롭기 때문에 Python을 사용하여 자동으로 DB 연결 정보를 다시 쓰는 방법을 소개합니다.
Tableau Desktop(twb 파일)의 실태는 XML 파일이므로, Python의 라이브러리를 사용하면 간단하게 퍼스, 재기록도 할 수 버립니다.
(이하, twb 파일의 실태)
환경
디렉토리 구성
config
아래에 설정 파일, src
아래에 py 파일을 둡니다.
root/
├ config/
├ src/
설정 파일
config
아래에 다음을 생성합니다.
conf.ini[file]
# 書き換え対象のtwbファイル
TWB_FILE_PATH =
[parser]
# db接続情報を属性にもつタグ
DB_CONF_PATH = datasources/datasource/connection/named-connections/named-connection/connection
[db]
# 書き換え後のdb接続情報
PORT =
SERVER =
DBNAME =
USERNAME =
PASSWORD =
스크립트 파일
다음 스크립트를 실행하면 twb 파일이 다시 작성됩니다.
XML 구문 분석하고 attribute를 다시 쓰는 것만의 처리입니다.
main.pyimport ConfigParser
import os
import sys
import xml.etree.ElementTree as ET
# 設定ファイルの読み込み
conf = ConfigParser()
# iniファイルの絶対パスを指定
conf.read(os.path.dirname(os.path.abspath('__file__')) + '/../config/conf.ini')
try:
# XMLを解析
tree = ET.parse(conf.get('file', 'TWB_FILE_PATH'))
# XMLを取得
root = tree.getroot()
# twbファイルのXMLパースに失敗した場合
except Exception as e:
print(f'{e}')
sys.exit(1)
# DB接続情報が記載されている属性を書き換え
for result in root.findall(conf.get('db', 'DB_CONF_PATH')):
# 属性の書き換え
result.set('port', conf.get('db', 'PORT'))
result.set('username', conf.get('db', 'USERNAME'))
result.set('dbname', conf.get('db', 'DBNAME'))
result.set('server', conf.get('db', 'SERVER'))
result.set('password', conf.get('db', 'PASSWORD'))
# 書き換えたXMLファイルを反映
tree.write(file_path, xml_declaration=True)
print('rewrote db_connection info.')
Reference
이 문제에 관하여(Tableau Desktop (twb 파일)의 DB 연결 정보를 Python으로 다시 작성하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yolo_kiyoshi/items/b544de5f87dc0765ca28
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
root/
├ config/
├ src/
config
아래에 다음을 생성합니다.conf.ini
[file]
# 書き換え対象のtwbファイル
TWB_FILE_PATH =
[parser]
# db接続情報を属性にもつタグ
DB_CONF_PATH = datasources/datasource/connection/named-connections/named-connection/connection
[db]
# 書き換え後のdb接続情報
PORT =
SERVER =
DBNAME =
USERNAME =
PASSWORD =
스크립트 파일
다음 스크립트를 실행하면 twb 파일이 다시 작성됩니다.
XML 구문 분석하고 attribute를 다시 쓰는 것만의 처리입니다.
main.pyimport ConfigParser
import os
import sys
import xml.etree.ElementTree as ET
# 設定ファイルの読み込み
conf = ConfigParser()
# iniファイルの絶対パスを指定
conf.read(os.path.dirname(os.path.abspath('__file__')) + '/../config/conf.ini')
try:
# XMLを解析
tree = ET.parse(conf.get('file', 'TWB_FILE_PATH'))
# XMLを取得
root = tree.getroot()
# twbファイルのXMLパースに失敗した場合
except Exception as e:
print(f'{e}')
sys.exit(1)
# DB接続情報が記載されている属性を書き換え
for result in root.findall(conf.get('db', 'DB_CONF_PATH')):
# 属性の書き換え
result.set('port', conf.get('db', 'PORT'))
result.set('username', conf.get('db', 'USERNAME'))
result.set('dbname', conf.get('db', 'DBNAME'))
result.set('server', conf.get('db', 'SERVER'))
result.set('password', conf.get('db', 'PASSWORD'))
# 書き換えたXMLファイルを反映
tree.write(file_path, xml_declaration=True)
print('rewrote db_connection info.')
Reference
이 문제에 관하여(Tableau Desktop (twb 파일)의 DB 연결 정보를 Python으로 다시 작성하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yolo_kiyoshi/items/b544de5f87dc0765ca28
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import ConfigParser
import os
import sys
import xml.etree.ElementTree as ET
# 設定ファイルの読み込み
conf = ConfigParser()
# iniファイルの絶対パスを指定
conf.read(os.path.dirname(os.path.abspath('__file__')) + '/../config/conf.ini')
try:
# XMLを解析
tree = ET.parse(conf.get('file', 'TWB_FILE_PATH'))
# XMLを取得
root = tree.getroot()
# twbファイルのXMLパースに失敗した場合
except Exception as e:
print(f'{e}')
sys.exit(1)
# DB接続情報が記載されている属性を書き換え
for result in root.findall(conf.get('db', 'DB_CONF_PATH')):
# 属性の書き換え
result.set('port', conf.get('db', 'PORT'))
result.set('username', conf.get('db', 'USERNAME'))
result.set('dbname', conf.get('db', 'DBNAME'))
result.set('server', conf.get('db', 'SERVER'))
result.set('password', conf.get('db', 'PASSWORD'))
# 書き換えたXMLファイルを反映
tree.write(file_path, xml_declaration=True)
print('rewrote db_connection info.')
Reference
이 문제에 관하여(Tableau Desktop (twb 파일)의 DB 연결 정보를 Python으로 다시 작성하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yolo_kiyoshi/items/b544de5f87dc0765ca28텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)