Skip to content

genda-tech/sample-data-catalog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sample-data-catalog

データカタログ

事前に必要な準備

ローカル or AWS上のどちらでも動かせるように作成してあります。

ローカルで動かす場合に必要な準備

config.yamlsecrets.tomlを作成して、以下のようなディレクトリ構成にします。

sample-data-catalog/
  ├ .streamlit/config.toml streamlitの背景の色などを設定
  ├ data-catalog.py データカタログのコード 
  ├ requirements.txt 必要なライブラリをインストールするのに使うrequirement.txt
  ├ secrets.toml snowflakeの接続情報を記載する。
  └ config.yaml ログイン機能用の設定を記載する。

config.yamlに記載すること

credentials:
  usernames:
    [ユーザー名]:
      name: [ログイン時に使うuser名を指定]
      password: [パスワードをハッシュ化した文字列]
cookie:
  expiry_days: 1
  key: some_signature_key
  name: some_cookie_name

secrets.tomlに記載すること

Snowflakeの接続情報を記載します。 以下のようなファイルを作成して、user~roleまで全て記載しておきます。

[snowflake]
user      = 
account   = 
password  = 
warehouse = 
role      =

AWSで動かす場合に必要な準備

AWS Secrets Managerにて、シークレットを登録しておく必要があります。

data_catalog_login

data_catalog_loginというシークレット名でシークレットを作成し、 CREDENTIALというシークレット値のシークレットを作成して、以下を登録しておきます。

"credentials":
  "usernames":
    "[ユーザー名]":
      "name": "[ログイン時に使うuser名を指定]"
      "password": "[パスワードをハッシュ化した文字列]"
"cookie":
  "expiry_days": 1
  "key": "some_signature_key"
  "name": "some_cookie_name"

snowflake_data_catalog

snowflake_data_catalogというシークレット名でシークレットを作成し、 secrets.tomlで入力した内容と同じく、Snowflakeの接続情報を以下のシークレットキーで登録しておきます。

  • USER
  • ACCOUNT
  • PASSWORD
  • WAREHOUSE
  • ROLE

ローカル・AWSで動かす場合に共通で必要な準備

S3バケットの用意

tfstateを配置するためのバケットが必要です。 本サンプルコードはAmazon S3にtfstateを配置することを想定しています。 なお、terraform/tfroot/backend.tfにて、tfstateの配置場所を指定します。

GitHubのSecretsの設定

以下の項目をGitHubのSecretsに設定してください。 GitHub Actionsが使用するAWSやSnowflakeの認証情報を設定します。

  • AWS_REGION
  • AWS_IAM_ROLE_ARN
  • SNOWFLAKE_ACCOUNT
  • SNOWFLAKE_REGION
  • SNOWFLAKE_USER
  • SNOWFLAKE_PASSWORD

主な機能

ログイン画面

以下を入力してログインします。 config.yamldata_catalog_loginシークレットに登録したものです。

  • Username
  • Password image

データカタログ画面

サイドバーの以下の機能を使ってデータを検索します。

  • テキストボックス
  • ドロップボックス image

メタデータ自動更新機能

データカタログに表示するメタデータの管理を自動化する機能です。 メタデータを管理している該当のyamlを編集します。そして、GitHubのmainブランチへのマージをトリガーとしてGitHub Actionsが実行され、自動的にメタデータが更新されます。

メタデータは以下のようなフォーマットで作成してください。

name: "EMPLOYEES"
comment: "従業員マスター"
change_tracking: false
columns:
  - name: "EMPLOYEE_ID"
    type: "NUMBER(38,0)"
    comment: "従業員のID。このテーブルの主キー。"
    nullable: false
  - name: "FIRST_NAME"
    type: "VARCHAR(50)"
    comment: "名前。"
    nullable: true
  - name: "LAST_NAME"
    type: "VARCHAR(50)"
    comment: "苗字。"
    nullable: true
  - name: "SALARY"
    type: "NUMBER(10,2)"
    comment: "給与。ドル単位で格納。"
    nullable: true
  - name: "HIRE_DATE"
    type: "DATE"
    comment: "雇用した日。日本時間にて格納。"
    nullable: true

参考

About

Streamlitを利用したデータカタログのサンプルコード

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors