DCM:ミドルウェアファミリーの新しいメンバー

DCMとは何ですか

最新のアプリケーションは常にデータを処理しており、データ計算はどこにでもあり、統計、データ分析、ビジネス処理などを報告します。現在のデータ処理の主な手段は、リレーショナルデータベースに代表される関連テクノロジーです。高レベルの言語(Javaなど)は、さまざまな計算を実行するためにハードコーディングできますが、データベース(SQL)よりもはるかに便利ではありません。データベースは現在でもデータ処理で使用されています。重要な役割を果たします。

ただし、情報技術の発展と、ストレージとコンピューティング、マイクロサービス、プレコンピューティング、エッジコンピューティングの分離などのアーキテクチャと概念の台頭により、過度に重く閉じたデータベースは、これらのシナリオに対処することがますます困難になっています。 。データベースでは、計算するためにデータを保存する必要がありますが、多様なデータソースが豊富にある場合、データストレージは非効率的でリソースを大量に消費するだけでなく、リアルタイムのパフォーマンスを保証できません。一部のデータは一時的なものです。使用されますが、永続化のためにデータベースに保存する必要があります。さらに、マイクロサービスやエッジコンピューティングなど、アプリケーション側でコンピューティング能力をプリロードする必要があるシナリオの場合、使用するデータベースを埋め込むことも困難です。

このコンテキストでは、データベースに依存せず、オープンコンピューティング機能を備え、アプリケーションに組み込んで統合できるデータコンピューティングおよび処理テクノロジがあれば、これらの問題は十分に解決できます。これがデータコンピューティングミドルウェア(Dataコンピューティングミドルウェア)。ミドルウェア、DCMと呼ばれます)。DCMのアプリケーションシナリオは非常に広く、ユビキタスと言えます。アプリケーション開発、マイクロサービスの実装、ストアドプロシージャの置き換え、データベースの分離、ETL支援、多様なデータソースコンピューティング、BIデータの準備などの最適化に重要な役割を果たすことができます。 。アプリケーションデータの相互作用を含むほとんどすべてのシナリオで、DCMを使用して、アプリケーション構造を改善し、開発とコンピューティングの効率を向上させることができます。

DCMアプリケーションシナリオ

アプリケーション開発を最適化する

アプリケーションのデータ処理ロジックはコーディングによってのみ実装できます。必要な構造化コンピューティングクラスライブラリがないため、ネイティブJava実装を使用するのは難しい場合があります。新しく追加されたStream / Kotlinを使用しても、大幅に向上することはありません。ORMテクノロジーの助けを借りて、開発のジレンマをある程度軽減することができますが、それでも専門的な構造化データ型が不足しており、セット操作は便利ではなく、データベースの読み取りと書き込みのコードは面倒で複雑です計算を行うのは困難です。ORMのこれらの欠点は、ビジネスロジックの開発効率を大幅に向上させるだけでなく、大幅に低下させることさえあります。さらに、これらの実装はアプリケーションの構造上の問題につながる可能性があります。Javaで実装されたコンピューティングロジックは、メインアプリケーションと一緒にデプロイする必要があり、その結果、密結合になります。また、ホットデプロイメントの開発と操作をサポートしていないため、面倒です。

DCMのアジャイルコンピューティング、簡単な統合、ホットスイッチングなどの機能を使用して、アプリケーションのJavaを置き換えてデータ処理ロジックを実装すると、上記の問題を十分に解決でき、開発効率が向上するだけでなく、アプリケーション構造が最適化され、コンピューティングモジュール。、およびホットデプロイメントをサポートします。

多様性データソースの計算

最近のアプリケーションは、さまざまなデータソースの問題に直面することもよくあります。データベース処理には、非効率的なデータストレージが必要であるだけでなく、データのリアルタイム性を保証することもできません。さまざまなデータソースには独自の利点があります。RDBには強力なコンピューティング能力がありますが、IOスループットは弱いです。また、NoSQLには高いIO効率がありますが、コンピューティング能力は弱いです。テキストなどのファイルデータにはコンピューティング能力がまったくありませんが、非常に柔軟に使用できます。これらのデータをリポジトリに強制すると、これらの元のデータソースの利点が失われます。

DCMのマルチソース混合計算機能により、RDB、テキスト、Excel、JSON、XML、NoSQL、およびその他のネットワークインターフェイスデータを直接混合および計算して、データと計算のリアルタイムパフォーマンスを確保できるだけでなく、さまざまなデータソースを同時に保持することができます。利点とその有効性を十分に発揮します。

マイクロサービスの実装

マイクロサービスの現在の実装は、データ処理をJavaとデータベースに大きく依存しています。Javaの欠点は、実装が複雑で、ホットスワップできないことです。データベースには「ライブラリ」の制限がありますが、マルチソースデータはライブラリに保存された後にのみ計算され、柔軟性は非常に低く、データの適時性が保証されないだけでなく、さまざまなデータソースの利点を十分に活用できません。

統合可能なDCMをミドルオフィスまたはマイクロサービスの各リンクに組み込んで、データの収集と並べ替え、データ処理、およびデータ前のコンピューティングタスクを完了します。オープンコンピューティングシステムを使用すると、複数のデータソースの利点を十分に活用し、柔軟性を高めることができます。マルチソースデータ処理、リアルタイムコンピューティング、ホットデプロイメントなどの問題は簡単に解決できます。

ここに画像の説明を挿入

ストアドプロシージャの置き換え

以前は、複雑な計算を実装したり、データを整理したりするためにストアドプロシージャがよく使用されていました。ストアドプロシージャには、ライブラリでの計算に一定の利点がありますが、欠点も明らかです。ストアドプロシージャは移植性に欠け、編集とデバッグが難しく、ストアドプロシージャの作成と使用には高い権限が必要であり、セキュリティの問題があります。フロントエンドアプリケーションにサービスを提供するストアドプロシージャも、データベースとアプリケーション間の緊密な結合を引き起こします。

DCMを使用してストアドプロシージャをアプリケーションに外部化することで、「外部ストレージプロシージャ」を実現でき、データベースは主にストレージに使用されます。ストアドプロシージャをデータベースから切り離すことで、ストアドプロシージャに起因するさまざまな問題を解決できます。

ここに画像の説明を挿入

BIデータの準備を報告する

レポートのデータ準備はDCMにとって重要なシナリオです。これまで、データベースを使用してレポートのデータを準備することには、実装の難しさや強い結合などの問題があり、レポート自体には計算能力がなく、多くの複雑な計算を完了できませんでした。ライブラリ外の強力なコンピューティング能力により、DCMはレポート専用のデータコンピューティングレイヤーを提供できます。これにより、データベースを分離してデータベースの負担を軽減できるだけでなく、レポートツール自体のコンピューティング能力の不足を補うこともできます。 。論理的に階層化された後、レポートの開発と保守は非常に新鮮です。

ここに画像の説明を挿入

中間テーブルの削除

クエリの効率を上げるために、クエリ対象のデータが処理されて結果テーブルになり、中間テーブルであるデータベースに格納される場合があります。さらに、一部の複雑な計算では、中間結果を保存し、それらを中間テーブルとして保存する必要があります。さまざまなデータソースも、データベースに混在させる前に中間テーブルとして保存する必要があります。ストアドプロシージャと同様に、中間テーブルが確立されると、複数のアプリケーション(モジュール)で使用される可能性があり、アプリケーションとデータベースが緊密に結合されます。同時に、中間テーブルは簡単に削除できないため、数がたまります。中間テーブルが多すぎると、データベースの容量とパフォーマンスの問題が発生します。中間テーブルのストレージにはスペースが必要であり、中間テーブルの処理にはデータベースコンピューティングリソースが必要です。

DCMを使用すると、中間テーブルをファイルシステムに外部化でき、DCMを使用して計算を実装できます。また、データベースの分離により、データベースのストレージと計算の負担を軽減できます。ここで重要なのは、DCMによってファイルにも計算能力があるため、ライブラリ内の中間テーブルをライブラリの外部に配置できることです。元々、中間テーブルは主にデータベースの計算能力を取得するためにライブラリに配置されていました。 DCMの計算能力を備えた中間テーブルはライブラリに格納されます。それがどのような形式であっても、ファイルシステムの外部に配置することをお勧めします。

ここに画像の説明を挿入

T+0クエリ

データ量がある程度蓄積されると、本番データベースに基づくクエリがトランザクションに影響を与えます。このとき、大量の履歴データが他の履歴データベースに取り込まれ、ホットデータとコールドデータが分離されます。このとき、全量のデータをクエリする場合は、クロスデータベースクエリ、ホットおよびコールドデータルーティングなどを完了する必要があります。データベースには、クロスデータベースクエリ、特にクロスヘテロジニアスデータベースに多くの問題があり、非効率的であるだけでなく、不安定なデータ送信や低いスケーラビリティなど、T+0フルデータクエリを十分に実現できない多くの欠点があります。

そして、これらの問題はDCMによって解決できます。独立した完全なコンピューティング機能により、さまざまなデータベースからフェッチして計算できるため、異種データベースの状況にうまく適応でき、次のように計算するかどうかを決定することもできます。データベースのリソースステータス。データベースまたはDCMに実装され、非常に柔軟です。コンピューティングの実装に関して、DCMのアジャイルコンピューティング機能は、T + 0クエリでの複雑なコンピューティングを簡素化し、開発効率を向上させることもできます。

ETL

ETLは、データをクリーンアップして変換してからターゲットにロードする必要があります。ただし、ソースデータは複数のソース(テキスト、データベース、Web)から取得される可能性があり、データ品質が不均一であるため、EとTの2つのステップで処理が行われます。大量のデータ計算。現在、データベースに加えて、他のデータソースにはそのような計算能力がありません。これらの計算を完了したい場合は、最初にデータベースにロードしてから実行する必要があります。これにより、LETが形成されます。データベースに保存された大量の役に立たないデータは、多くのストレージスペースを占有し、容量の問題を簡単に引き起こす可能性があります。ただし、データベースへのクリーニングと変換の計算作業を押すと、データ処理時間が長くなり、クリーニングと変換が行われていない生データの保存時間が大量に追加されます。限られたETL時間枠では不十分である可能性があります。 ETL作業は、指定された時間内に完了できません。翌日のビジネスに影響します。

ETLタスクにDCMを導入すると、Eのクリーニング、Tの変換、Lの読み込みを順番に完了し、LETが直面するさまざまな問題を解決できます。DCMのオープンコンピューティング機能の助けを借りて、マルチソースデータはライブラリの外部でクリーンアップおよび変換されます。DCMは、さまざまな複雑な計算を処理する強力なコンピューティング機能を備えており、最終的に、ソートされたデータをターゲット側にインストールして、真のETLを実現します。

DCMの特性

DCMのアプリケーションシナリオは非常に広いことがわかります。では、これらのシナリオをうまく処理するには、優れたDCMにはどのような特性が必要ですか?

互換性

まず、DCMは互換性が高く、プラットフォーム間で使用でき、DCMの使用範囲を決定するさまざまなオペレーティングシステム、クラウドプラットフォーム、およびアプリケーションサーバーで適切に実行できる必要があります。

さらに、互換性とは、直接使用できるデータソースの種類や混合計算に関係なく、さまざまなデータソースと互換性があることも意味します。そのため、DCMには十分なオープン性が必要です。

ホットデプロイ

データ処理は高頻度で安定性の低いシナリオです。ビジネス開発の過程で、新しいコンピューティングタスクや変更されたコンピューティングタスクが追加されることがよくあります。これには、DCMにホットデプロイメント特性が必要です。データ処理ロジックの変更は、アプリケーション(サービス)を再起動せずに実行できます。 )。効果的。

高性能(効率的)

コンピューティングパフォーマンスは、データコンピューティングシナリオの重要な側面であり、場合によってはそれが主な焦点になります。DCMは、データを効率的に処理し、高性能コンピューティングライブラリ、高性能ストレージソリューション、並列コンピューティングなどの高性能保証メカニズムを提供できる必要があります。

機敏

俊敏性には、DCMがデータ処理ロジックを迅速に実装し、完全なコンピューティング機能を備えていることが必要です。特に複雑なコンピューティングシナリオでは、データ処理を十分に単純なコーディングで完了できると同時に、効率的に実行できます。これには、DCMがアジャイルプログラミングメカニズムや使いやすい開発環境などのサポートを提供する必要があります。

スケーラブル

コンピューティング能力がニーズを満たすことができない場合、DCMはスケールアウトする柔軟性を備えている必要があります。スケーラビリティは現代のアプリケーションにとって非常に重要であり、スケーラビリティがDCMの上限を決定します。

埋め込み可能

DCMは、アプリケーションと適切に統合でき、アプリケーション内でコンピューティングエンジンとして機能し、アプリケーションの一部としてアプリケーションとともにパッケージ化および展開できる必要があります。このようにして、アプリケーション自体が強力なコンピューティング能力を獲得し、データベースに大きく依存しなくなった後は、ストレージとコンピューティングの分離、マイクロサービス、エッジコンピューティングなどのシナリオにうまく対応できます。さらに、優れた統合は俊敏性のもう1つの側面です。DCMは非常に軽量であり、いつでもどこでもアプリケーションと組み合わせて組み込むことができます。

DCMのこれらの特性のイニシャルを組み合わせると、CHEESE(チーズ)(CHEASE)に非常に近く、DCMはハンバーガーに挟まれたチーズのように機能します。欠落していると、味と栄養がはるかに悪くなります。

ここに画像の説明を挿入

このように、理想的なDCMとして使用できるかどうかは、CHEASE標準を使用して調べることができます。ここでは、DCMのいくつかの主流テクノロジーの満足度を見てみましょう。

最先端

SQL

データベースはSQLを使用するための主要な位置であり、データベースは通常強力な計算能力を備えています。一部のヘッドデータベースの計算パフォーマンスも非常に強力であり、基本的に高性能(E)のニーズを満たすことができます。さらに、データベースが閉じすぎており、データはデータベースに格納された後にしか計算できないため、さまざまなデータソースシナリオのニーズを十分に満たすことができず、互換性(C)が不十分です。

統合(E)の場合、ほとんどのデータベースは独立して使用されるため、埋め込みをサポートするデータベース(SQLiteなど)のほとんどが機能とパフォーマンスの要件を満たしていないことが多く、データベースは統合の要件をほとんど満たしていません。

特別なセットコンピューティング言語として、SQLは単純な計算を実装するのに非常に便利ですが、SQLで複雑な計算を表現するのは非常に面倒であり、複数のレイヤーをネストする必要があることがよくあります。 「長い」SQLは、書くのが難しいだけでなく、メンテナンスも便利ではないため、SQLは俊敏性の要件を満たしていません(A)。

データベースと同様のHadoop関連のテクノロジーにも同じ問題があります。閉鎖性は、互換性の低さ、敏捷性の不足、基本的に統合の欠如などの欠点につながります。スケーラビリティの点ではデータベースより優れていますが、一般的には次の要件を満たしていません。 DCM。。Sparkのパフォーマンスはわずかに優れていますが、Scalaはホットデプロイメントをサポートしておらず、複雑な計算を実装するのは便利ではありません。SparkSQLにはSQLの問題があります。これらのテクノロジーはすべて、俊敏性、統合、ホットデプロイメントなどの点でDCMのニーズを満たすには重すぎます。

Java

ネイティブプログラミング言語として、Javaはプラットフォーム間で適切に実行でき、コーディングを通じてマルチデータソースコンピューティングタスクを完了することもできるため、互換性(C)は非常に優れています。また、Javaで開発されたほとんどのアプリケーションでは、統合(E)は問題ありません。

ただし、Javaの欠点も明らかです。コンパイル型言語として、ホットデプロイメント(H)を実現することはできません。必要な構造化コンピューティングクラスライブラリがないため、複雑なコンピューティングは言うまでもなく、単純なグループ化と要約を完了するには数十行のコードが必要です。マイクロサービスアーキテクチャでデータ処理を完了するためにJavaハードコーディングがよく使用されますが、実際、計算の実装はSQLよりもはるかに複雑です。A)非常に不十分です。StreamはJava8の後に導入されましたが、コンピューティング能力は大幅に向上していません(Kotlinにも同様の問題があります)。

Javaは理論的にはさまざまな高性能アルゴリズムを実装できますが、特定のアプリケーション/プロジェクトにしか対応できない場合、これらの高性能アルゴリズムパッケージを実装するには多額の投資が必要です。したがって、実用的なアプリケーションの観点から、JavaにはHighがありません。パフォーマンス(E)特性。スケーラビリティ(S)にも同じ問題があります。したがって、全体として、Javaを優れたDCMテクノロジーとして使用することは困難です。

Python

人気のあるコンピューティングテクノロジーとして、Pythonについて言及する必要があります。Pythonは強力な互換性(C)を備えており、クロスプラットフォームとマルチデータの両方のソースをサポートできます。特に、豊富なデータ処理パッケージにより、Pythonは非常に適用可能です。

Pythonは、Javaや他のテクノロジーと比較して、構造化データ処理においてかなりの利点がありますが、特に順序付きグループ化などの複雑な計算を処理する場合は、完璧とは言えません。Pythonは俊敏性にわずかに欠けています(A)。

それだけでなく、Pandasのパフォーマンス(E)は、特にアルゴリズムの実装効率に大きく関係する大量のデータ量の計算では、要件を満たさないことがよくあります。アジャイル構文は、高性能アルゴリズムを簡単に実装できます。 。同様に、スケーラビリティ(S)に関しては、Pythonは満足のいくものではありません。基本的に、プログラミング言語としてのPythonは、Javaと同じように、優れたスケーラビリティを実現するために多くのリソースを投資する必要があります。

Pythonの最大の問題は統合(E)であり、これは既存のアプリケーションと統合するのが困難です。サービス間呼び出しはサイドカーなどのパターンを介して行うことができますが、アプリケーションと組み合わせて組み込む(同じプロセス)というDCMの要件から本質的にかけ離れています。Pythonの主なアプリケーションシナリオは、Javaのようなエンタープライズレベルのアプリケーション開発を行うことではありません。最終的な分析では、専門的なことを行うには専門的なツールも必要です。

プロフェッショナルデータコンピューティングミドルウェアSPL

オープンソースのesProcSPLは、プロのデータコンピューティングミドルウェアであり、データベースに依存しない完全なコンピューティング機能を備えています。同時に、オープンコンピューティング機能は、さまざまなデータを混合して計算できます。同時に、解釈と実行of SPLは当然、ホットデプロイメントをサポートし、その優れた統合は非常に便利です。アプリケーションへの組み込みが容易であるため、アプリケーションは強力なコンピューティング能力を備え、DCMの有効性を十分に発揮します。

互換性

SPLはJavaで開発されており、そのクロスプラットフォーム機能はJavaと一貫性があり、さまざまなオペレーティングシステムやクラウドプラットフォームで適切に実行できます。マルチデータソースのサポートに関して、SPLはオープンコンピューティング機能を備えており、RDB、NoSQL、CSV、Excel、JSON / XML、Hadoop、RESTful、Webサービスなどの複数のデータソースに接続できます。ストレージ、データリアルタイム、計算のリアルタイムパフォーマンスは十分に保証されます。

マルチソースコンピューティングのサポートにより、元のデータベースがクロスソースおよび外部データを計算できないという問題が解決されました。SPLの完全な計算能力とSQLよりも簡潔な構文を組み合わせることで、アプリケーションはデータベースと同等になります( )計算能力。

ネイティブコンピューティング構文に加えて、SPLはSQLサポート(SQL92標準と同等)も提供します。SQLサポートは、SQLを使用して、テキスト、Excel、NoSQLなどの非RDBデータソースをクエリできます。これにより、SQLに精通したアプリケーション開発者が大幅に容易になります。 。

オープンコンピューティングシステムのサポートがなければ、DCMは十分に強力な互換性を持ち、より多くのアプリケーションシナリオに適応できます。

ホット展開

SPLは、解釈された実行メカニズムを採用し、当然、ホットデプロイメントをサポートします。これは、安定性の低い計算ロジックを追加および変更する必要がある一部のビジネス(レポートやマイクロサービスなど)にとって非常に便利です。

ハイパフォーマンス

パフォーマンスに関しては、SPLは多くの高性能アルゴリズムと高性能ストレージメカニズムを提供します。前述のDCMが中間テーブルとETLを排除するシナリオでは、データはデータベース外のファイルに保存されることがよくあります。この場合、SPLファイル形式の保存を使用すると、テキストなどのオープン形式よりもはるかに高いパフォーマンスを実現できます。

SPLは、セットファイルとグループテーブルの2つのストレージタイプを提供します。セットファイルは、圧縮テクノロジ(フットプリントが小さく、読み取りが高速)を採用し、データ型を格納し(データ型を解析する必要がなく、読み取りが高速)、追加可能なデータの乗算セグメンテーションメカニズムをサポートし、セグメンテーション戦略を使用して並列処理を簡単に実現できます。コンピューティングパフォーマンスを確保します。グループテーブルは列型ストレージをサポートします。これは、計算に関係する列(フィールド)の数が少ない場合に大きな利点があります。グループテーブルは、minmaxインデックスも実装し、乗算セグメンテーションをサポートします。これにより、列ストレージの利点が得られるだけでなく、並列での計算パフォーマンスの向上も容易になります。

SPLは、さまざまな高性能アルゴリズムもサポートしています。たとえば、SPLでは一般的なTopN操作は、複雑度の高い並べ替えを複雑度の低い集計操作に変換し、アプリケーションの範囲を拡大できる集計操作として理解されます。

A
1 = file(“ data.ctx”)。create()。cursor()
2 = A1.groups(; top(10、amount)) トップ10の注文
3 = A1.groups(area; top(10、amount)) 地域ごとの上位10件の注文

ここのステートメントにはソートワードはなく、大きなソートアクションは発生しません。完全なセットまたはグループ化でTopNを計算するための構文は基本的に同じであり、どちらもパフォーマンスが高くなります。SPLには多くの類似したアルゴリズムがあります。

SPLは、複数のCPUを利用して、並列コンピューティングの実装も簡単です。SPLには、ファイルの読み取り、フィルタリング、並べ替えなどの並列メカニズムを提供する多くの計算機能があります。@ mオプションが追加されている限り、並列計算を自動的に実装できます。これはシンプルで便利です。同時に、並列プログラムの記述を表示し、マルチスレッド並列処理によってコンピューティングパフォーマンスを向上させることもできます。

機敏

SPLは、ネイティブコンピューティング構文と簡潔で使いやすいIDE環境を提供します。IDEでは、コーディングとデバッグに便利なだけでなく、プロセス計算の各ステップの計算結果をリアルタイムで表示できます。 。その結果、変数を定義する必要がなく、シンプルで便利です。

同時に、SPLの豊富なコンピューティングクラスライブラリに基づいて構造化データ計算を実装する方が便利です。これには、グループ化の要約、ループ、フィルタリング、セット操作、および順序付けされた計算が含まれます。

SPLは、複雑な計算に特に適しています。SQLの多くのレイヤーをネストする必要がある計算には、SPLを使用すると非常に便利です。たとえば、在庫記録に基づく在庫の最長の継続的な上昇は何日ですか?SPLはSQLよりもはるかに単純です。

上記のSQLは3層にネストされており、書くことは言うまでもなく、読むことは非常に混乱します。次のSPLは完全に自然な思考に基づいており、わずか3行で実装でき、判断が下されます。

優れた敏捷性は、開発効率を向上させるだけでなく、SPLを介して多くの高性能アルゴリズムを簡単に実装できます。アルゴリズムを考え出すだけでなく、実装する必要があります。最適な実装は単純です。SPLはこの可能性を提供します。

拡張性

コンピューティングパフォーマンス要件が高いシナリオの場合、SPLは、個別のコンピューティングサービスを展開し、マルチマシン分散クラスターをサポートし、負荷分散とフォールトトレランスのメカニズムをサポートし、コンピューティングリソースが上限に達したときに水平方向に拡張することでコンピューティング能力を向上させることもできます。

分散コンピューティングでは、ユーザーはデータとコンピューティングタスクの特性に応じてデータ分散と冗長性スキームを柔軟にカスタマイズできます。これにより、ノード間のデータ送信量を効果的に削減し、パフォーマンスを向上させ、制御可能なデータ分散を実現できます。

SPLは非中央クラスター設計を採用しています。クラスターには永続的な中央マスターノードがないため、プログラマーはコードを使用して計算に参加するノードを制御できるため、単一障害点を効果的に回避できます。同時に、SPLは、各ノードのアイドル状態(スレッド数)に応じてタスクを割り当てるかどうかを決定し、負荷とリソースの効果的なバランスを実現します。

フォールトトレランスに関して、SPLは、外部メモリの冗長性フォールトトレランスとメモリスペアタイヤのフォールトトレランスの2種類のデータフォールトトレランスメカニズムを提供します。コンピューティングフォールトトレランスをサポートします。ノードに障害が発生すると、ノードのコンピューティングタスクが自動的に他のノードに移行され、完了し続けます。

統合

DCMをアプリケーションと組み合わせる側面として、SPLは標準のJDBC / ODBC / RESTfulインターフェイスを提供し、アプリケーションはストアドプロシージャを呼び出すのと同じようにSPL計算結果を要求できます。

ここに画像の説明を挿入

論理的には、DCMとして、SPLはアプリケーションとデータソース間のデータ処理を実装し、上側にコンピューティングサービスを提供し、下側にさまざまなデータソースの違いを保護し、DCMの重要な役割を完全に示します。

JDBC呼び出しSPLコード例:

Class.forName("com.esproc.jdbc.InternalDriver");
Connection conn =DriverManager.getConnection("jdbc:esproc:local://");
CallableStatement st = conn.prepareCall("{call splscript(?, ?)}");
st.setObject(1, 3000);
st.setObject(2, 5000);
ResultSet result=st.execute();

総合すると、DCMの6つの特性(CHEASE)の観点から、SPLはすべての面で非常にバランスの取れた能力を持ち、他のテクノロジー全体よりもはるかに優れており、DCMにとって理想的な選択肢です。

ここに画像の説明を挿入

SPL情報

SPLに興味のある小さなヘルパー(VX番号:SPL-helper)を追加して、SPL技術交流グループに参加してください。

おすすめ

転載: blog.csdn.net/u010634066/article/details/124909514