Skip to Content
Technical Articles
Author's profile photo Yu Ureshino

Data Warehouse Cloudのビジネス名を一括変更する方法

This blog post is written in Japanese.

SAP Data Warehouse Cloud (以下、DWC) のテーブルを作成したときに、列名の技術名とビジネス名は同じものがデフォルトで入力されます。Data Warehouse Cloudの機能では一括でビジネス名を変更することはできず、手作業でビジネス名を変更していただく必要があります。

このブログではDWCのCSN/JSONファイルエクスポート/インポート機能を使って、Pythonでビジネス名を一括変更する方法をご紹介します。
※JSONを扱えるライブラリがあるJavascriptでも同様に行えるかと思います。

手順は3つです。

①CSN/JSON ファイルをエクスポート

②Pythonで書き換える

③DWCに書き換えたファイルをインポート

今回はCUSTOMERというテーブルのビジネス名を日本語にしたいと思います。

詳しい手順についてご紹介します。

①CSN/JSON ファイルをエクスポート

DWCから目的のテーブルをCSN/JSON ファイルとしてエクスポートします。

②Pythonで書き換える

Pythonで下記コードを実行します。

import json
# カラムの技術名とビジネス名のマッピング
table_mapping = {'CUSTOMER':'こきゃく'}
# カラムの技術名とビジネス名のマッピング(DB等から取得する必要があるのであればコードを取得するためのコードを記述する)
column_mapping = {'COUNTRY':'くに'
 , 'FULLNAME':'なまえ', 'TITLE':'たいとる'
 , 'COMPANY':'かいしゃ', 'ADDRESS1':'じゅうしょ1'
 , 'ADDRESS2':'じゅうしょ2', 'ADDRESS3':'じゅうしょ3'
 , 'CITY':'とし', 'STATE':'しゅう'
 , 'ZIPCODE':'〒', 'EMAIL':'めあど'
 , 'PHONE':'でんわ', 'DATE':'ひづけ'}
# 入力ファイル(引数等で指定すると汎用的)
input_file_path = 'CUSTOMER.json'
# JSONファイルをロード
with open(input_file_path) as file:
    data = json.loads(file.read())
# 確認
print (data)
# テーブル名を取得
table_name = list((data['definitions'].keys()))[0]
# テーブルのエンドユーザテキストをビジネス名に変更
data['definitions'][table_name]['@EndUserText.label'] = table_mapping.get(table_name, table_name)
# カラムのエンドユーザテキストをビジネス名に変更
for key in data['definitions'][table_name]['elements']:
    data['definitions'][table_name]['elements'][key]['@EndUserText.label'] = column_mapping.get(key, key)
# 出力ファイル(引数等で指定すると汎用的)
out_file_path = 'CUSTOMER_OUT.json'
# JSONファイルを出力
with open(out_file_path, mode='wt', encoding='utf-8') as file:
    json.dump(data, file, ensure_ascii=False, indent=2)
# 確認
print (data)

出来たデータを CUSTOMER_OUT.json としてローカルPCに保存します

③DWCに書き換えたファイルをインポート

先ほど作成した CUSTOMER_OUT.json をDWCにインポートします。

手順は以上です。

テーブルを開いてビジネス名が変更できているか確かめてみましょう。次のようになっていれば成功です。

最後まで読んでいただきありがとうございました!

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.