Slide 1

Slide 1 text

Starburst Enterpriseのご紹介 JDMCエンジニアの会 2024年1月18日 Starburst ソフトウェアエンジニア & Trino (旧PrestoSQL) メンテナー 蛯原 裕弥

Slide 2

Slide 2 text

Starburst 会社紹介 August 2012 January 2024 Facebook と Teradataの メンバーにより Starburstを創業 Total Valuation Mar ‘22 $3.35B Trino (旧 Presto) 35,000コミット へ到達 Teradata によるコミュニテ ィへの投資 Facebookが Prestoを オープンソース化 Facebookの 4人の開発者が Prestoプロジェク トを開始 Matthew Fuller Kamil Bajda-Pawlikowski Justin Borgman Martin Traverso Dain Sundstrom David Phillips +

Slide 3

Slide 3 text

BI Integration Client Support Real-time analytics NoSQL Stores Applications 分析エンジン MPPクエリエンジン データプロダクト 耐障害性実行 クエリオプティマイザ オートスケーリング Smart Indexing & Caching メトリクス&ロギング セキュリティ End-to-End暗号化 データのマスク クエリの監査 アクセスコントロール Data Lakes / Lakehouses Relational DBs snowflake Data Consumptionレイヤー S3 Starburstの全体像

Slide 4

Slide 4 text

Starburstを採用するメリット ● 50以上のコネクタを提供 ● ハイブリッド/クロスクラウド向けの Stargateコネクタ ● Iceberg, Delta Lake, Hudiをサポート ● データレイクハウス ● マテリアライズドビュー ● タイムトラベル、スキーマ進化 ● Warp Speedコネクタ (smart indexing & caching) ● データプロダクト ● スキーマディスカバリ 多様なデータに対する フェデレーション レガシーなデータレイク を近代化 データウェアハウスの 補完 Relational NoSQL Applications Streaming Data Lake データウェアハウス オブジェクトストレージ フェデレー ション データレイク の分析

Slide 5

Slide 5 text

Parse Worker node Coordinator node Metastore Add worker node BI & SQL Clients Data storage Add worker node Analyze Optimize Schedule Trino cluster Compute engine Worker node アーキテクチャ概要 ● ストレージと計算処理を完全に分離 ● ワーカー数やクラスター自体を追加するこ とで水平にスケール ● 最も計算コストの低いJOINを決定するため のコストベースのオプティマイザー ● 実行中のクエリに影響をあたえることなく ワーカーをシャットダウンするAPI ● 重要なユーザーやクエリはリソースグルー プを利用して優先化 Starburst EnterpriseはOSS Trinoをベースにした MPPクエリエンジンで、コネクタを使って多様 なデータソースにアクセスできます

Slide 6

Slide 6 text

Source systems Enterprise data warehouse Data lakes Data source Data source Data source Data source ETL ETL ETL Data science Applications Dashboard & reports ETL ETL ETL ETL ETL ETL ETL ETL ETL ETL ETL 導入前のイメージ (複雑なパイプラインや散在した権限管理)

Slide 7

Slide 7 text

Source systems Enterprise data warehouse Data lake analytics platform Data source D Data source Data source Data source ETL ETL ETL Data science Applications Dashboard & reports 導入後のイメージ (シンプルなパイプライン、一元的な権限管理) 既存の分析環境と同居しつつ仮想的なDWHを提供できます

Slide 8

Slide 8 text

Starburstが環境を管理するSaaS製品 ● メインターゲットはクラウド ● クラスターサイズに応じた料金モデル ● バージョンアップは自動 ● Data lineageのサポート ● Cache serviceは非サポート ● Rangerは非サポート https://www.starburst.io/platform/starburst-galaxy/ 無料枠もあります Starburst GalaxyとStarburst Enterprise お客様が環境を管理する製品 ● オンプレ/クラウドどこでもデプロイ可能 ● vCPUに応じた料金モデル ● バージョンアップは手動 ● Data lineageは非サポート ● Cache serviceのサポート ● Rangerのサポート https://www.starburst.io/platform/starburst-enterprise/ Starburst Galaxy Starburst Enterprise (SEP) 共通の機能が多いですが、一方のみでサポートされている機能もあります

Slide 9

Slide 9 text

データソース側には何もインストールする必要はありません Deploy in cloud ecosystems AWS, Google Cloud, Microsoft Azure, Red Hat OpenShiftにてテンプレートを利用 starburst-admin K8sを利用した本番環境向けで推奨のインストール方法。 中身はAnsibleのファイル群、よく使用するコマンドが用意されています。 Local installation RPM, tar.gz, Dockerを使って自分でインスールすることも可能です。 サポート対象ですが、本番環境での利用は推奨していません。 Starburst Enterpriseインストール方法

Slide 10

Slide 10 text

フェデレーション データサイロを解決する50以上のコネクタ、権限管理

Slide 11

Slide 11 text

データレイク リレーショナルDB NoSQLストア リアルタイム分析 アプリケーション 50+ 対応コネクタ BIツールとクライアント シングルポイント アクセス

Slide 12

Slide 12 text

オンプレミスやクラウドに問わず様々なデータソースに対してSQLを実行可能 抽象的な構文木に変換してから各データソースに対して処理を行います SELECT cust.custkey , cust.first_name||' '||cust.last_name as full_name , cust.state , cust.dob , cust.ssn , custp.career , custp.risk_appetite , acc.acctkey , acc.cc_number , sum(cred.payment_amount) AS total_payments_to_date FROM glue.burst_bank.customer cust JOIN snowflake_jdbc.burst_bank.account acc ON cust.custkey = acc.custkey JOIN iceberg.burst_bank.card_payments cred ON cred.cc_number = acc.cc_number JOIN mongodb.burst_bank_large.customer_profile custp ON custp.custkey = cust.custkey WHERE cust.country = 'US' AND custp.profilekey = '1746499' GROUP BY 1,2,3,4,5,6,7,8,9 ORDER BY 10 DESC; クエリフェデレーション { profilekey: { $eq: "1746499" } } JOIN JOIN JOIN SUM Filter country = 'US' Glueからテーブル定義、S3からデータを取得 ※この例ではSELECTを挙げていますがCREATE TABLEやINSERTもサポートしています

Slide 13

Slide 13 text

データレイク向けコネクタ 以下のテーブルフォーマットをサポートしています。 元々Hiveの代替として始まったこともあり最も力を入れているコネクターです。 ● Hive ● Iceberg ● Delta Lake ● Hudi ● Kudu HiveコネクターはHiveQLに依存はしておらず、Hiveのメタストア(ThriftやGlue)からテーブ ル情報を取得したあとは直接ストレージにデータを取得しに行きます。 これらのコネクタはStarburstを使う上で必須ではありませんが、後述のデータプロダクト など一部の機能はHiveコネクタに依存しています。

Slide 14

Slide 14 text

リレーショナルDB向けコネクタ JDBCドライバを利用しているコネクタでは DatabaseMetaDataからメタデータを 取得します。その他のコネクタではDBが提供するJava/C++ SDKを利用します。 Azure Data Explorer, BigQuery, IBM Db2, ClickHouse, Druid , Generic JDBC, Greenplum, Ignite, MariaDB, MySQL, Netezza, Oracle, Phoenix, Redshift, SingleStore, Synapse, SQL Server, Teradata, Vertica 特徴 ● 豊富なプッシュダウン - WHERE句、集約、テーブル結合 ● コネクタによってはパラレルな読み込みをサポートしています ● サポートしていない型を持つカラムはデフォルトで除外されます ○ 設定(unsupported-type-handling, jdbc-types-mapped-to-varchar )で変更可能

Slide 15

Slide 15 text

リアルタイム分析向けコネクタ リレーショナルDB系のコネクタとは異なり、テーブルへ容易に変換できないので コネクタによってはマッピング用の変換ルールをJSONファイルで提供する必要 があります。 ● ClickHouse ● Druid ● Kafka ● Amazon Kinesis ● Pinot 例えば、Kafkaコネクタではトピック/メッセージがStarburstのテーブル/レコー ドにマッピングされます。

Slide 16

Slide 16 text

NoSQLストア向けコネクタ リアルタイム分析向けコネクタと同様に、コネクタによってはテーブル定義を JSONファイルで提供する必要があります。 ● CosmosDB ● DynamoDB ● Elasticsearch ● MongoDB ● Redis 例えば、MongoDBではコレクション/ドキュメントがStarburstのテーブル/レコ ードにマッピングされます。初回の読み込み時にテーブル定義を推測します。 Mongodb ドキュメント Starburst レコード

Slide 17

Slide 17 text

アプリケーション向けコネクタ 従来はSQLでの分析が難しかったデータに対してもStarburstを利用することで SQLによるアクセスが可能となります。 ● Neo4j ● Salesforce ● SAP HANA ● Splunk ● Google Sheets ● Prometheus Note コネクタが存在しない場合、自分で開発してデプロイすることも可能です。 多くの企業で独自のコネクタが開発されています。

Slide 18

Slide 18 text

● Starburstのクラスタ同士を接続するコネクタです ● SQLクエリをリモートのクラスタへプッシュダウンしコストの削減や性能の向上を図ります ● オンプレミスやクラウドが混在していても接続が可能です Stargateコネクタ

Slide 19

Slide 19 text

利用しているデータソースの種類を問わずアクセスコントロールを行えます。 Hadoop系の分析環境ではRangerを利用していることが多いですが、 Starburstではビルトインのアクセスコントロールを提供しています。 ● Roles ● Privileges ● Masks and filters ● Audit log Rangerとの違いは以下のページに載っています。 例えばTagベースのポリシー管理はBIACではサポートされていません。 https://docs.starburst.io/latest/security/biac-vs-ranger.html BIAC (Built-In Role-based Access Control)

Slide 20

Slide 20 text

カラムのマスクおよびレコードのフィルタリング SELECT orderkey, clerk FROM tpch.tiny.orders ORDER BY 1, 2 LIMIT 3; SELECT DISTINCT state FROM glue.burst_bank.customer; カラムのマスク レコードのフィルタリング "$sb_internal_mask_varchar"(cast("@column" as varchar)) state in ('NY','NJ') adminで実行 adminで実行 別ロールで実行 別ロールで実行 スキーマやテーブルよりさらに細かい粒度で権限をコントロール可能です。

Slide 21

Slide 21 text

データレイクハウス レガシーなデータレイクを近代化

Slide 22

Slide 22 text

モダンなデータレイク = データレイク + ウエアハウス + フェデレーション ストレージと計算処理 の分離 Elastic compute オブジェクトストレージ オープンファイル フォーマット Global federated access to data sources beyond the lake Scalable, cost effective Vendor agnostic Benefits Single point of access and governance for all data Advanced warehouse- like capabilities MPPクエリエンジン オープンテーブル フォーマット データレイク分析 プラットフォーム 単一アクセスポイント データのガバナンス DWHと同レベルの 機能を提供 ベンダー非依存 スケーラブル、費用対効果

Slide 23

Slide 23 text

Hiveコネクタの課題を解決するためにIcebergコネクタを推奨しています。 Hive Thriftメタストア, AWS Glue, JDBC, REST, Nessieカタログをサポート。 • 同時読み書き • 柔軟なスキーマの変更 • レコード単位の読み書き編集 • 過去状態の復元やタイムトラベル • Change Data Capture (CDC) • Hiveメタストアの負荷の削減 HiveからIcebergへの変換はmigrateプロシージャを使うことで可能 https://www.starburst.io/blog/how-to-migrate-your-hive-tables-to-apache-iceberg/ Icebergコネクタの機能

Slide 24

Slide 24 text

Starburst EnterpriseにはRDBMSを内部的に使用するバックエンドサービスが付属 しており、以下の機能を提供します。 ● クエリの完了等の詳細情報の保存 ● クラスタのメトリクス管理 ● データプロダクト ● ビルトイン ロールベースアクセスコントロール(BIAC) ● 統計情報の管理 ● キャッシュサービス (マテリアライズドビュー&リダイレクション) MySQL, Oracle, PostgreSQLがサポートされています。 バックエンドサービス

Slide 25

Slide 25 text

デプロイ方法はEmbeddedとStandaloneの2種類がサポートされています。 ● Embeddedはコーディネータ上で稼働 ● Standaloneは別サーバー上で稼働 キャッシュサービス OSS TrinoではIcebergコネクタのみで マテリアライズドビューがサポートさ れていますが、StarburstではHiveコネ クタでも利用可能になっています。 性能の遅いコネクタ (例 JDBC系のテー ブル) にアクセスする際に、より高速 なコネクタ(例 Hive)を使用しているテ ーブルを透過的に読み込みます。 テーブル同士をincremental/fullリフレ ッシュで同期可能。 マテリアライズドビュー テーブルスキャン リダイレクション

Slide 26

Slide 26 text

データウェアハウスの補完 Warp Speedコネクタ、データプロダクト

Slide 27

Slide 27 text

インデックス(bitmap, dictionary, tree)を自動で作成し ます。 predicates, joins, filtersなどを高 速化し、データをスキャンする 量を最小化。 Warp Speedコネクタ オブジェクトストレージからデ ータを読み込み、ワーカー上の SSD NVMeへキャッシュとして 保存。 Apache Luceneを内部的に利用 し、大きな文字列を持つカラム に対するLIKE句を高速化。 Data cache acceleration Index acceleration Text search acceleration Hive, Iceberg, Delta Lakeコネクターを高速化するコネクターです。 AmazonのEKS, MicrosoftのAKSもしくはGoogleのGKEが必要です。 オンプレミスは今後サポート予定。 https://docs.starburst.io/latest/connector/starburst-warp-speed.html

Slide 28

Slide 28 text

Streamlined visibility. 複数のデータセットを管理す るデータプロダクトを作成、公開、検索できます。 利用頻度などのメトリクスも管理されています。 Consistent governance. データプロダクトもテーブ ルと同様にアクセスコントールにより制御されてい ます。 Ultimate accessibility. データプロダクトに対してテ ーブルと同様にクエリを実行可能です。 データプロダクト 複数のデータセットに基づくデータプロダクトの 検索、作成、公開、管理、共有

Slide 29

Slide 29 text

● 過去に利用されたクエリ数、ユーザー数 ● データプロダクトの説明 ● ViewおよびMaterialized viewのリスト ● タグ、ドメイン、関連リンクを管理 よく使用するクエリの例の登録や、簡単な議論もデ ータプロダクト上で行えます データプロダクト Overview, Usage examples, Discussion

Slide 30

Slide 30 text

現時点ではStarburst Galaxyでのみサポートされています。 Starburst EnterpriseとOpenLineage/Apache Atlasの連携はサポートされています。 データのリネージュや品質について テーブルや(マテリアライズド) ビューが生 成された流れを視覚的に表示 カラムのNULLの割合/Min/Maxなどの情報 やスケジューラでデータの品質を確認可能 リネージュ カラムプロファイル&データクオリティ

Slide 31

Slide 31 text

デモ クエリの実行、クラスタの監視、セキュリティ

Slide 32

Slide 32 text

● 接続されたデータソース内のスキーマ、テーブ ル、ビュー、カラムなどを確認するエクスプロ ーラー ● クエリの実行および結果のダウンロード ● 保存されたクエリの確認やクエリの実行履歴、 実行時のダイアグラムを利用した性能の確認 Insights (Query editor) A full environment to write and execute SQL statements

Slide 33

Slide 33 text

Insights 以下の情報を表示します。 Query text ● 実行されたクエリのテキスト Basic information ● 実行したユーザーやクライアントの情報 Query execution ● AnalyzingやPlanning等にかかった時間 Query details - General

Slide 34

Slide 34 text

Insights ステージの情報をリストまたはグラフ形式で表示し ます。 ● CPU usage ● Cluster size ● Memory ● Queries グレーの縦線が入っている部分がクエリが実行され たタイミングを表しています。 Query details - Cluster resources

Slide 35

Slide 35 text

Insights ステージ毎のかかった時間をリストまたはグラフ形 式で確認できます。 Query details - Stages

Slide 36

Slide 36 text

Insights Tables ● クエリ内でアクセスされたテーブルを表示します Query plan ● 実行計画をテキストベースで表示します Execution details ● CPU時間や読み込まれた行数などを表示します Query details - Advanced

Slide 37

Slide 37 text

Thank you!

Slide 38

Slide 38 text

No content