2
2

複数テーブルのオペレーションを実現するDiscoverX

Posted at

Databricks Labsで公開されていました。

DiscoverXを用いることで、複数テーブルに対するスキャンやSQLの適用を一度に行うことができます。

注意
上のリンク先にも記載されているように、/databrickslabsのgithubアカウントで提供されているものは探索目的のためのものであり、DatabricksによるSLAを提供するものではありません。問題を発見した場合には、GitHubのIssueとして報告してください。

要件

  • Databricksワークスペース
  • Unity Catalogサポート

オペレーションの例

複数テーブルに対して同時にオペレーションが適用されます。

ウォークスルー

%pip install dbl-discoverx
from discoverx import DX
dx = DX()

Welcomeメッセージが表示されます。
Screenshot 2023-09-24 at 14.06.33.png

上のdx.scan(from_tables="*.*.*")を実行すると、Unity Catalogメタストアの全カタログ、データベース、テーブルをスキャンするので、対象を絞ります。

dx.scan(from_tables="takaakiyayoi_catalog.default.taka_qiita")

上の例では1つのテーブルのみを対象にしていますが、ワイルドカード(*)を使えば複数のテーブルを同時にスキャンすることができます。

こちらに説明があるように、scanは意味論に基づく分類を行うために、ルールで定義された正規表現を用いてレイクハウスをスキャンします。
Screenshot 2023-09-24 at 14.07.30.png

結果から、一つの列がURLであると識別されたことがわかります。

なお、ビルトインのルールを確認することができます。クレジットカード番号、メールアドレス、IPアドレスなど。

dx.display_rules()

Screenshot 2023-09-24 at 14.11.16.png

複数のテーブルに任意のSQLを同時に適用することもできます。

dx.from_tables("takaakiyayoi_catalog.covid.covid*")\
  .apply_sql("SELECT to_json(struct(*)) AS row FROM {full_table_name} LIMIT 1")\
  .execute()

Screenshot 2023-09-24 at 14.13.54.png

あとでPIIの特定もトライしてみます。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2