Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Starburst Enterprise について

Starburst Enterprise について

JDMCエンジニアの会主催セミナーの講演者資料

テーマ:
データサイロ問題とマルチクラウド間のデータ分析をどう解決するか?
~Dell x Starburst のデータ仮想化ソリューションから考えるアプローチ
https://jdmc.connpass.com/event/305600/

発表者;
蛯原裕弥(Starburst ソフトウェアエンジニア, Trino メンテナー)/小野 良夫(デル・テクノロジーズ株式会社 DCWソリューション本部 DA/AI担当シニアスペシャリスト)

More Decks by Japan Data Management Consotrium

Other Decks in Technology

Transcript

  1. 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 +
  2. 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の全体像
  3. Starburstを採用するメリット • 50以上のコネクタを提供 • ハイブリッド/クロスクラウド向けの Stargateコネクタ • Iceberg, Delta Lake,

    Hudiをサポート • データレイクハウス • マテリアライズドビュー • タイムトラベル、スキーマ進化 • Warp Speedコネクタ (smart indexing & caching) • データプロダクト • スキーマディスカバリ 多様なデータに対する フェデレーション レガシーなデータレイク を近代化 データウェアハウスの 補完 Relational NoSQL Applications Streaming Data Lake データウェアハウス オブジェクトストレージ フェデレー ション データレイク の分析
  4. 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クエリエンジンで、コネクタを使って多様 なデータソースにアクセスできます
  5. 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 導入前のイメージ (複雑なパイプラインや散在した権限管理)
  6. 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を提供できます
  7. 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) 共通の機能が多いですが、一方のみでサポートされている機能もあります
  8. データソース側には何もインストールする必要はありません Deploy in cloud ecosystems AWS, Google Cloud, Microsoft Azure,

    Red Hat OpenShiftにてテンプレートを利用 starburst-admin K8sを利用した本番環境向けで推奨のインストール方法。 中身はAnsibleのファイル群、よく使用するコマンドが用意されています。 Local installation RPM, tar.gz, Dockerを使って自分でインスールすることも可能です。 サポート対象ですが、本番環境での利用は推奨していません。 Starburst Enterpriseインストール方法
  9. オンプレミスやクラウドに問わず様々なデータソースに対して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もサポートしています
  10. データレイク向けコネクタ 以下のテーブルフォーマットをサポートしています。 元々Hiveの代替として始まったこともあり最も力を入れているコネクターです。 • Hive • Iceberg • Delta Lake

    • Hudi • Kudu HiveコネクターはHiveQLに依存はしておらず、Hiveのメタストア(ThriftやGlue)からテーブ ル情報を取得したあとは直接ストレージにデータを取得しに行きます。 これらのコネクタはStarburstを使う上で必須ではありませんが、後述のデータプロダクト など一部の機能はHiveコネクタに依存しています。
  11. リレーショナル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 )で変更可能
  12. NoSQLストア向けコネクタ リアルタイム分析向けコネクタと同様に、コネクタによってはテーブル定義を JSONファイルで提供する必要があります。 • CosmosDB • DynamoDB • Elasticsearch •

    MongoDB • Redis 例えば、MongoDBではコレクション/ドキュメントがStarburstのテーブル/レコ ードにマッピングされます。初回の読み込み時にテーブル定義を推測します。 Mongodb ドキュメント Starburst レコード
  13. アプリケーション向けコネクタ 従来はSQLでの分析が難しかったデータに対してもStarburstを利用することで SQLによるアクセスが可能となります。 • Neo4j • Salesforce • SAP HANA

    • Splunk • Google Sheets • Prometheus Note コネクタが存在しない場合、自分で開発してデプロイすることも可能です。 多くの企業で独自のコネクタが開発されています。
  14. 利用しているデータソースの種類を問わずアクセスコントロールを行えます。 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)
  15. カラムのマスクおよびレコードのフィルタリング 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で実行 別ロールで実行 別ロールで実行 スキーマやテーブルよりさらに細かい粒度で権限をコントロール可能です。
  16. モダンなデータレイク = データレイク + ウエアハウス + フェデレーション ストレージと計算処理 の分離 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と同レベルの 機能を提供 ベンダー非依存 スケーラブル、費用対効果
  17. 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コネクタの機能
  18. Starburst EnterpriseにはRDBMSを内部的に使用するバックエンドサービスが付属 しており、以下の機能を提供します。 • クエリの完了等の詳細情報の保存 • クラスタのメトリクス管理 • データプロダクト •

    ビルトイン ロールベースアクセスコントロール(BIAC) • 統計情報の管理 • キャッシュサービス (マテリアライズドビュー&リダイレクション) MySQL, Oracle, PostgreSQLがサポートされています。 バックエンドサービス
  19. デプロイ方法はEmbeddedとStandaloneの2種類がサポートされています。 • Embeddedはコーディネータ上で稼働 • Standaloneは別サーバー上で稼働 キャッシュサービス OSS TrinoではIcebergコネクタのみで マテリアライズドビューがサポートさ れていますが、StarburstではHiveコネ

    クタでも利用可能になっています。 性能の遅いコネクタ (例 JDBC系のテー ブル) にアクセスする際に、より高速 なコネクタ(例 Hive)を使用しているテ ーブルを透過的に読み込みます。 テーブル同士をincremental/fullリフレ ッシュで同期可能。 マテリアライズドビュー テーブルスキャン リダイレクション
  20. インデックス(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
  21. Streamlined visibility. 複数のデータセットを管理す るデータプロダクトを作成、公開、検索できます。 利用頻度などのメトリクスも管理されています。 Consistent governance. データプロダクトもテーブ ルと同様にアクセスコントールにより制御されてい ます。

    Ultimate accessibility. データプロダクトに対してテ ーブルと同様にクエリを実行可能です。 データプロダクト 複数のデータセットに基づくデータプロダクトの 検索、作成、公開、管理、共有
  22. Insights ステージの情報をリストまたはグラフ形式で表示し ます。 • CPU usage • Cluster size •

    Memory • Queries グレーの縦線が入っている部分がクエリが実行され たタイミングを表しています。 Query details - Cluster resources