フラット ファイルのバック トゥ ザ フューチャー【パート2】
組み込みソフトウェア開発者がデータベースを嫌がる理由
先週、フラット ファイルについての 1 本目の記事で、なぜ組み込みソフトウェア開発者がためらうことなくフラット ファイルを使用するのかについて書きました。その理由を簡単に述べるとすれば、それはフラット ファイルが常に手の届く範囲にあるからです。もしあなたが、素の実行カーネル以上の OS を使いたければ、それは無料で手に入れることが出来ます。フラット ファイルもまた簡単に使用できます。フラット ファイルには様々なファイル形式があり、それらは基本的なところで異なっていますが、開発者の立場からすると、暗号化の技術や強度などの基本的な特徴は API レベルでは同等です。多くの場合、開発者はフラット ファイルの代わりにデータベースを使用することを嫌がります。しかしながらデータベースこそがフラット ファイルの代替となるものです。
フラット ファイルとデータベースのどちらかを選択することは、好きではない 2 人の選挙立候補者から 1 人を選択するようなものでしょうか?
現在アメリカは選挙シーズンなので、この例えを出さずにはいられません。そして、上記の質問に対する答えは Yes でしょう。多くの開発者にとって、フラット ファイルとデータベースのどちらかを選択することは、本当は選びたくもない 2 人の候補者から 1 人を選ぶようなものです。候補者 A は確実に信頼できる人ではありますが、あなたが期待するような挑戦をしようとしてはいません。一方、候補者 B は多くの公約を掲げていますが、あなたは、実現するには桁外れな投資が必要になってくるのでどれも実現できないと考えています。現実にいる選挙立候補者をこの比較に当てはめるのはおかしいとお考えの向きもあるかもしれません。でも、申し訳ありませんが、この比較を続けさせていただきます。私の真意はご理解いただけたと思いますので(笑)。
他の候補者の公約を詳しく調べた後で、その候補者に投票してもいいでしょうか?
実際のところ、過去のケースで言うと、データベースは上記の候補者 B のようなものでした。そのことについて、もう少し詳しくお話ししましょう。そうすれば、なぜ開発者たちが長年データベースを避け続けているのかが明確になるでしょう。
1.私は開発者であり、データベース管理者ではありません。また、私のエンドユーザーはビジネス アナリストです。
開発者たちは、データベースがフラット ファイルよりも多くの機能を提供していることは分かっています。これらの機能としては、組み込みのインデックス作成、ネットワーク構築、静止時および送信中の管理者および自動によるセキュリティなどがあります。インデックスを自前で作成したり検索・ソートルーチンの作る場合に、データベースが提供する機能を知る必要がある事は、ほとんどの開発者にとって頭痛の種となっています。しかしながら、フラット ファイルを使用すれば、追加で作成しなければならないコードのすべてを直接開発者が管理できるようになり、コードの設計も調整できるようになります。そのため、コードがエンドユーザーから不可視にする事も可能ですし 、導入前にエンドユーザー側で設定も行えます。。データベースは、エンドユーザーのニーズや作業量に合わせて、これまで定期的に直接管理する必要がありましたが、チューニングや設定は、プログラミングAPIに組み込まれたものではなく、コマンド ライン インターフェースを介して行う必要がありました。
2.あなたは私に適切でないものを使用させようとしていますか?
前回のフラット ファイルに関する記事で述べたように、多くの運用現場では、コンピューティング リソースが非常に限られています。最近の組み込みプラットフォームは比較的リソースが豊富ですが、通常は、フットプリントが 0.5 ギガバイトから数ギガバイトに及ぶエンタープライズ データベースを実行することはできません。(もちろん、このサイズ計算には、アプリケーションや、ユーザー作成のデータテーブルやスキーマなどは含まれていません)ファイル システム管理のオーバーヘッドは多くの場合、数十キロバイトの範囲で収まり、付加的な設定も必要ありません。
3.私たちの状況は、昔の体制のときよりも今の方が改善されているのでしょうか。彼らは私たちの状況を少なくとも分かっているのでしょうか?
規模とユーザー数は問題の一部であり、従来のデータベースにとっては、何をするように設計され、どこで実行されていたかという事が指標となってきました。つまり、データセンターで実行されるリレーショナルデータベースが、リアルタイムでのデータのトランザクション操作や分析操作、あるいはより大規模なデータセットをサポートしているかどうかです。また、「何」は、リアルタイムのデータに作用するトランザクション オペレーション、アナリティカル オペレーション、もしくは結果として大規模なデータ セットをサポートすることです。大部分の開発者は、リレーショナル マッピングを望んでおらず、管理しているデータに直接アクセスするだけのシンプルな API を望んでいます。通常、個別のトランザクションまたは事後分析以上にデータに対するリアルタイム アクセスを望んでいます。リレーショナル マッピングに関心がない以上、一般に SQL の技術の習得にも興味がない開発者が多いです。
レガシーを尊重しつつも、未来へ進みましょう
当記事シリーズのパート1でも述べたように、私自身もオペレーショナル テクノロジー エンジニアだったので、これらのことについてはよく分かります。私もデータベースを嫌っていましたが、それは 1980 年代後半から 1990 年代前半にかけてのことです。現在は多くの選択肢があり、Actian Zen などのいくつかの選択肢は、このような環境のために構築されており、現代の開発者の好みに応じられるようになっています。
***************************************************
Actian社は、最新ビジネスに対応したオペレーショナルデータウェアハウスとエッジデータのマネジメントソリューションの分野で一歩リードしています。当社のソリューションにより、オンプレミスやクラウド、モバイル機器やIoT機器が設置されたエッジサイドのデータを管理することをサポートします。また、Actian社とエージーテックは、ビジネスアジリティのサポートに必要な技術基盤の開発をサポートします。詳しくはwww.agtech.co.jp/actian/をご覧ください。
https://www.actian.com/company/blog/its-back-to-the-future-for-flat-files-part-two/
(November 11, 2019 Lewis Carr 著)
Lewis Carrについて
戦略的な垂直産業、水平的ソリューション、製品マーケティング、製品管理、ビジネス開発専門の上席で、データ管理・分析、モバイル・IoT、分散クラウドコンピューティングを含むエンタープライズソフトウェアに重点的に取り組んでいる。