Apache Spark でXML データをSQL で操作

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

XML JDBC Driver

XML データストア連携のパワフルなJava アプリケーションを素早く作成して配布。



CData JDBC ドライバーを使用して、Apache Spark でXML にデータ連携。

Apache Spark は大規模データ処理のための高速で一般的なエンジンです。CData JDBC Driver for XML と組み合わせると、Spark はリアルタイムXML にデータ連携して処理ができます。ここでは、Spark シェルに接続してXML をクエリする方法について説明します。

CData JDBC Driver は、最適化されたデータ処理がドライバーに組み込まれているため、リアルタイムXML と対話するための高いパフォーマンスを提供します。XML に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計など、サポートされているSQL操作を直接XML にプッシュし、組込みSQL エンジンを使用してサポートされていない操作(SQL 関数やJOIN 操作)をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータ型を使用してXML を操作して分析できます。

※製品について詳しい情報をご希望の方は以下からお進みください。

CData JDBC Driver for XML をインストール

CData JDBC Driver for XML インストーラをダウンロードし、パッケージを解凍し、JAR ファイルを実行してドライバーをインストールします。

Spark Shell を起動してXML データに接続

  1. ターミナルを開き、Spark shell でCData JDBC Driver for XML JAR file をjars パラメータに設定します: $ spark-shell --jars /CData/CData JDBC Driver for XML/lib/cdata.jdbc.xml.jar
  2. Shell でJDBC URL を使ってXML に接続し、SQL Context load() function でテーブルを読み込みます。

    データソースを認証するには、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。 データプロバイダーはXML API を双方向データベーステーブルとしてモデル化し、XML ファイルをread-only ビュー(ローカルファイル、人気のクラウドサービスに格納されたファイル、およびFTP サーバー)としてモデル化します。 HTTP Basic、Digest、NTLM、OAuth、およびFTP を含む主な認証スキームはサポートされています。認証のガイドについては、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。

    URI と認証値を設定した後で、DataModel を設定することでデータの構造によりよくマッチするようデータの抽象化を調整できます。

    DataModel プロパティはデータがどのようにテーブルとして抽象化されるかを制御するプロパティであり、次の基本的な設定を調整します。

    • Document(デフォルト):XML データのトップレベルのドキュメントビューをモデル化します。データプロバイダーは入れ子化した要素をデータの集約値として返します。
    • FlattenedDocuments:入れ子化したドキュメントとその親を結合して単一のテーブルに入力します。
    • Relational:個別の関連テーブルを階層化されたデータから返します。テーブルは主キーと、親ドキュメントにリンクする外部キーを含みます。

    リレーショナルな抽象化の設定についての詳細は、「XML データのモデリング」セクションを参照してください。次の例で使用されているサンプルデータも存在します。 このデータには、人名、その人たちが所有する車、車に施されたさまざまなメンテナンスに関する情報が含まれます。

    組み込みの接続文字列デザイナー

    JDBC 接続文字列URL の作成には、XML JDBC Driver にビルトインされたデザイナを使用できます。JAR ファイルをダブルクリックするか、コマンドラインでJAR ファイルを実行するとデザイナが開きます。

    java -jar cdata.jdbc.xml.jar

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    scala> val xml_df = spark.sqlContext.read.format("jdbc").option("url", "jdbc:xml:URI=C:/people.xml;DataModel=Relational;").option("dbtable","people").option("driver","cdata.jdbc.xml.XMLDriver").load()
  3. 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
  4. XML をテンポラリーテーブルとして登録します:

    scala> xml_df.registerTable("people")
  5. データに対して、次のようなカスタムSQL クエリを実行します:

    scala> xml_df.sqlContext.sql("SELECT [ personal.name.first ], [ personal.name.last ] FROM people WHERE [ personal.name.last ] = Roberts").collect.foreach(println)

    You will see the results displayed in the console, similar to the following:

CData JDBC Driver for XML をApache Spark で使って、XML に対して、複雑かつハイパフォーマンスなクエリを実行できます。是非、30日の無償試用版 をダウンロードしてお試しください。