|
BlazingSQLは、NVIDIA RAPIDSエコシステム上に構築されたGPUアクセラレーションSQLエンジンです。様々なETL大規模データセット向けのSQLインターフェースを提供し、完全にGPU上で動作します。先日、開発チームはBlazingSQLがApache 2.0ライセンスの下で完全にオープンソース化されたことを発表しました。 オープンソースプロジェクトのアドレス: https://github.com/blazingdb/pyBlazing/ BlazingSQL は、NVIDIA RAPIDS エコシステム上に構築された GPU アクセラレーション SQL エンジンです。RAPIDS には、GPU 上でエンドツーエンドのデータサイエンス計算と分析パイプラインを実行するためのソフトウェアライブラリセット (BlazingSQL、cuDF、cuML、cuGraph) が含まれています。RAPIDS は Apache Arrow 列指向ストレージ形式をベースとしており、cuDF はデータの読み込み、結合、集計、フィルタリング、操作を行う GPU DataFrame ライブラリです。BlazingSQL は cuDF への SQL インターフェイスであり、大規模なデータサイエンス ワークフローとエンタープライズ データセットをサポートする幅広い機能を提供します。 公式の説明によると、BlazingSQLは(ほぼ)あらゆるデータを処理できるとのことです。以前はBlazingDBという名前でしたが、データベースではなかったため、開発チームによってBlazingSQLに改名されました。 BlazingSQL の主な機能:
開発チームは、SQL がこれまですべての主要な分析エコシステムの基礎であり、RAPIDS が次世代の分析エコシステムであり、BlazingSQL が RAPIDS の SQL 標準であると考えています。 BlazingSQLはcuDFとcuIOをベースに構築されており、これらのプロジェクトの新機能はBlazingSQLの機能とパフォーマンスに直接影響を与えます。さらに、BlazingSQLはGDF上で動作するため、すべてのRAPIDSライブラリと100%相互運用可能です。 RAPIDS を使用している場合、または RAPIDS の使用を検討している場合、BlazingSQL は次のようなさらなる利便性を提供します。
現在、BlazingSQL+RAPIDS は Google Colab で利用可能です。開発チームは GCP 上に、Spark 用と BlazingSQL 用の 2 つの同価格帯のクラスタを構築しました。これらのクラスタ上で、データレイクから ETL/特徴量エンジニアリング、そして XGBoost トレーニングに至るまで、エンドツーエンドのデータ分析ワークロードを実行し、Spark と BlazingSQL のパフォーマンス比較テストを実施しました。 開発者たちは、2,000万行を超えるNetflowデータに対して、同じワークロードを2回実行しました。まずBlazingSQL + RAPIDSを実行し、次にPySpark (Spark 2.4.1)を使用して再度実行したところ、以下の結果が得られました。 Google ドライブから CSV をそれぞれの DataFrame にロードするのにかかる時間を考慮すると、 BlazingSQL は Spark よりも 71 倍高速です。 小さいほど良い ETL 時間だけを見ると、 BlazingSQL と Rapids は Spark よりも 100 倍高速です。 小さいほど良い 次の Colab デモを実行して、無料の NVIDIA T4 GPU リソースを使用して同じテストを実行し、BlazingSQL の実際のパフォーマンスを確認します。 https://colab.research.google.com/drive/1EbPE9FwFur7fE2054BH9s23Kd0FiUgGo 報道によると、BlazingSQLのパフォーマンス向上の大部分は、チームの内部エンジンプロジェクトによるものです。BlazingSQLチームのエンジニアは、「SIMD Expression Interpreter」と呼ばれる、GPU DataFrames(GDF)専用に構築されたGPU実行カーネルの開発を目指しました。開発チームは、いくつかの重要なステップを通じてパフォーマンス向上を実現するSIMD Expression Interpreterの詳細を公開しました。
現在、SIMD 式インタープリターは BlazingSQL でフィルタリングと投影をサポートしているため、多くの主流の SQL クエリに影響を与えています。 BlazingSQL を使用して Amazon S3 内の CSV ファイルをクエリするためのサンプル コード:
BlazingSQL のその他の操作方法については、以下を参照してください。 GitHub プロジェクト リンク: https://github.com/blazingdb/pyBlazing/ 公式サイト: https://docs.blazingdb.com/docs/using-blazingsql |