Excel+DBで大容量化
Excel+DB=多人数共有/高速・大容量化
今お使いのExcelをベースに、DB(データベース)システムへ
1000万件でも、Excelで処理可能
DBシステムなら、その時必要なデータのみ抽出してくるので、全体が1000万件以上あっても、Excel上に持ってくるのはせいぜい数万件に押さえられます。
だから、1000万件以上のデータがあっても、Excelが重くなることは原理的にありません。
データベースアプリであるAccessだと100万件を超えると遅くて使い物にならないケースが増えますが、SQLServerなどのDBサーバを使う方式であれば、大容量かつ高速処理が可能になります。
※これは一般の高速処理用の実装と同じ方法を、Excelシステム開発に取り入れたものです。
当社では、代表的なDBサーバであるSQLServerの他、初期費用がほとんどかからないクラウド型DB(Azure SQL Database:いわゆる「アジュール」)との組み合わせも、数多く手がけてきました。
他にも、AWS(Amazon Web Services:Amazon社が提供する、クラウドサービス)にも対応可能です。
★Azureへのリンク : https://learn.microsoft.com/ja-jp/azure/azure-sql/database/sql-database-paas-overview?view=azuresql
★AWSへのリンク : https://aws.amazon.com/jp/rds/sqlserver/
巨大化したExcelファイルを、すっきり・高速に
重すぎるExcelファイルを使って、複数の社員で共有・・・開くだけでも15分以上かかっていませんか?
適切にデータとロジックを分離すれば、いまの使い勝手の延長で、よりファイルを軽くできます。
このとき、データをデータベースに置くことで、より大量のデータを高速処理できるだけでなく、安全に多人数で同時利用できるようになります。
今お使いのExcelを、DB(データベース)連動化
「データが多すぎて重い」「複数人で共有したいが、壊れやすい」といったExcelファイルは、データ部分を分離してDB化することで、軽量化・高速化が図れます。
また、Excelにありがちな、式や関数を書きつぶして壊してしまう、といったことも、DBシステム側で処理することで、原理的に無くせます。
具体的には、データをDBに移し替え、必要なデータ(例:当年度のみ)を抽出する仕組みを入れる事で、従前の見た目のままでも、高速化・堅牢化できます。
実は、Excelには、SQLServerに接続するための機能が、最初から用意されています。
つまり、使い慣れた今のExcelを、データベースシステム化することが可能なのです。
実は、意外と低コスト
一般に、SQLServerのような本格的なデータベースを活用した情報システムは、数千万円以上かかることが多いのですが、簡易的な使い方であれば、導入コストを1/100程度に抑えられます。
例えば、既存のDBから値を取得して表示するレベルであれば、10万円~で実現可能です。
また、SQLServerやAzureのライセンスは、1つで大丈夫です。
クラウド型DBなら、初期費用ゼロ&月数千円で場所を選ばず利用可能
SQLServerは、社内でハードウェアも含めて完結するので、セキュリティ(機密性)保持の点からはわかりやすい利点があります。
一方、Azure SQL Datavaseの場合、クラウド型のため、社外でも国外でも、VPNなどの特別なしくみなしで、同じDBを共有できます。
また、クラウド型DBの場合、ハードウェアなどにかかる初期投資がかからないので、月額数千円の運用コストだけで高度な機能が活用できます。
参考までに、Azure SQL Datavaseを使った場合、月々のランニングコストは、\1,500程度です。
データが独立できるので、再利用可
プログラムによる処理(ロジック)とデータが分離しているため、将来新システムに乗り換える場合も、データの再利用が容易です。
例えば、将来的にWebシステムに乗り換える計画がある場合でも、データが再利用できるので、無駄になりません。
また、Excelシステムのまま機能追加する場合も、既存データが活用しやすく、「全てのエクセルシートを読み込まなくてはいけない」という事態は原理的に回避されます。
性能も、設定次第ですぐに(数分後)拡張できます。
ちょっとした修正も、一元化により瞬間対応
巨大化したExcelファイルに機能を加える/修正する場合、どこから手を付けてよいか分からなくなりがちです。
うかつに触ると、思わぬところに影響が出てしまうので、怖くて直せないというケースが大半です。
作った人はもういない、いても過去の自分が作ったものは分からない・・・となると、誰かが引き取るか、修正しやすい構造に変えるしかありません。
DBなら構造的に機能が一元化されるので、他への影響を最小限に抑えられる構造にできます。
Excel+DBだからこそ、これができる
1:Accessの限界を解決
- 最大でも2GBのデータ量
- もともと複数人で共有される想定で設計されていない
- データが増えると動作が遅くなる
- 同時に複数名で更新が苦手
- 256列(項目)を超える管理ができない
全て解決できました!
詳しくはこちらで紹介しています。
2:Excelの限界を解決!
- 容量が増えると、動作が遅くなる
- 同時に複数人で編集しようにも、壊れやすい
- リアルタイムで大勢とデータが共有できない
- 複雑な関数で作られると、引継ぎが困難
- たまに式や関数が壊れてしまい、それに気づけない
全て解決できました!
3:SQLServer(DBサーバ)の特長
- 1000万件以上のデータでも、高速処理可能
- 同時に大勢で利用可能
- Accessと違って、原理的にメモリを食わない
- 導入コストが高い(数十万~数百万)
- サーバに接続できる社内でないと使えない
いいところだけ取り入れました!!
4:クラウドDBの特長
- ネットにつながれば、どこからでも利用可能
- 初期投資がほとんど不要
- 後から、性能を容易に上げられる
- データが社外にあるのが心配
セキュリティ上の課題は解決可能です!
5:Excel+DBならこんなこともできます
- DBの知識がなくても、見た目はExcelのままDBを扱える
- Excelを操作するだけで、数百万のデータから必要なものだけ抽出可能
- クラウドDB(Azure)を組み合わせれば、全国どこでもリアルタイムで情報を共有できる
- 大勢の人が同じExcelシステムを触っても、動作も遅くならなければ壊れることもない
- 式や関数に頼らずとも処理が可能になるので、原理的に式や関数が壊れない
- データをロジックから分離できるので、拡張・変更が容易(属人化しにくい)
- 高性能パソコンでなくても、高速処理が可能
「エクセルで、DB化は可能です!」
当社の事例から、初歩的な内容をまとめた入門本です。
Accessの開発も手がけた当社の経験を踏まえた実践的な内容です。
実際に多くの案件でDBを用いたシステムを納品しています。
クラウド型DBサービスとは?
クラウド型DB
クラウドサービスとは、インターネット上にあるサーバを遠隔で利用する概念の総称です。
普段皆さんがお使いのネットショップも、ネットを使ったゲームも、広義のクラウドサービスといえます。
クラウド型DBは、インターネット上にDBサーバを公開し、契約に応じてレンタルするサービス、といえます。
実際にはハードウェアを1台ずつ設定するのではなく、仮想環境に多数のDB環境を契約単位で設定していますが、利用する側からは通常のDBサーバと同一に見えますし、操作方法も同様です。
クラウド型DBのメリット1
Azureのようなクラウド型DBは、前述のように「仮想環境」のため、物理的なハードウェアスペックの影響を請けません。
このため、能力不足を感じたら、設定を変えるだけで容量(ディスク)を増やしたり、処理速度(CPUパワー)を上げたりする、といったイメージで運用できます。
つまり、容量や処理能力に応じて、安いプランからスタートでき、ハードウェアを買い替えることなくスケールアップもできるのです。
クラウド型DBのメリット2
クラウド型DBは、インターネット上にあります。従って、インターネットにつながってさえいれば、利用することができます。
こうした利用方法では、外部からの攻撃による情報漏洩が気になりますが、「ログイン名が長くて推測が困難」「ログインパスワードを自由に設定可能」「接続先IPアドレスによる制限ができる」「そもそも内部定義を知らないと、操作ができない」などの特徴をもっており、一般のWebサーバよりは強力に守られているといえます。
つまり、セキュアな環境で、社外でも許可されたユーザ内で共有することが容易に実現できるのです。
Excelとの相性抜群!
一般のWebサーバでは、閲覧するWebページの定義ファイルそのものがネット上に存在しているため、ここを足がかりに攻撃が行われることが多いのです。
しかし、Excel+クラウドDBシステムの場合、Webページに相当するExcelのロジックファイルは同じ場所には置けないため、Excelファイルの置き場所とDBサーバの置き場所の2か所を突破しなければ、攻撃ができません。
つまり、一般のWebシステムに比べて、Excel+クラウドDBシステムの方が、外部からの攻撃に強いのです。
Excel + DB 開発事例
データベースメンテナンスシステム(Castanet)
SQLServerや、Azure SQL Databaseの環境で、既存テーブルのUIを短時間で作れます。
更新時は、変更行のみをUpdateするので、短時間で処理できます。
開発中のデータベースのデータ登録や、更新後データの初期化などを、ExcelのUIを活用して行えます。
販売管理システム
営業担当者が、外出先で案件を登録し、その日のうちに上司が裁可します。 ※ワークフロー機能
登録された案件は、登録完了後、取引先の締め日単位でまとめて請求書が発行できます。
また、個別に「今月は早めに請求書を出してほしい」といった要望にも対応可能です。
この他、案件単位で諸経費の登録も可能です(自動的に請求に反映)。
最終的には、入金情報とマッチングさせ、請求漏れ/入金漏れを未然に防止します。
その他の事例紹介
-
利用場所を選ばない、販売管理システム
全社員は日頃からマイクロソフト社のOffice製品を使い慣れていることもあり、利用者からは、普段通りExcelを使っている様に感じられますが、実際のデータの格納は、Azure上のデータベースに対して行われています。
-
Excelでオーダーメイドの賃貸管理&広告出稿
データベース化により高速化・多人数同時利用を可能に。 広告自動出稿機能(恐らく本邦初)により、大量の広告を毎日自動で出せるようになり、Web上では近隣随一の競争力を確保できた。
-
Excelの特性を活用した、マスタメンテナンス
元々台帳管理をエクセルで行っていたこともあり、マスタメンテナンス画面もエクセルで作ったら使いやすいのではないかというアイデアが出され、利用者側もそれなら使えるだろう、ということで、台帳管理時の画面イメージを極力損なわずにエクセルのままマスタ管理ができる機能を実装することになりました。
-
1秒=1件の計測データを日・週・月・曜日・・・で分析したい
1秒=1件で生成される計測データを使って、日別、週別、曜日別などの視点を組み合わせて、様々な分析を試みたいと考えていました。 とはいえ、データ量が膨大なのと、そもそもどうやって分析するかが試行錯誤の繰り返しのため…
-
取引先ごとに異なる多種類のレポートを、Excelで短時間で作成
D社は様々な会社がサービス提供している、電話医療相談サービスの対応を、代行しています。 代行業務の内容については、クライアント毎に指定された様式で結果報告レポートを毎月Excelで作成し…