特許拒絶査定不服審判
2017-016839
データ管理装置、データ管理方法、およびプログラム
- 審判番号
- 2017-016839
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2017-050997外部サイト(J-PlatPat)へ移動します
- 請求日
- 2017年11月13日
- 審決日
- 2019年01月21日
- 公報発行日
- 2019年03月29日
- 結論
- 原査定取消(特許/登録すべき)
- 分類
- P18 .121-WY (G06F) / P18 .537-WY (G06F)
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項、特許法第36条第6項第2号
- データ出所
- 審決公報(SGML)
事件の表示
特願2017- 50997「データ管理装置、データ管理方法、およびプログラム」拒絶査定不服審判事件〔平成30年10月 4日出願公開、特開2018-156233、請求項の数(7)〕について、次のとおり審決する。
結論
【結 論】
原査定を取り消す。
本願の発明は、特許すべきものとする。
理由
【理 由】
第1 手続の経緯
本願は,平成29年3月16日を出願日とする出願であって,平成29年5月25日付けで拒絶理由通知がされ,平成29年7月31日に意見書が提出されるとともに手続補正がされ,平成29年8月8日付けで拒絶査定(原査定)がされ,これに対し,平成29年11月13日に拒絶査定不服審判の請求がされると同時に手続補正がされ,平成30年8月10日付けで当審より拒絶理由通知(以下,「当審拒絶理由通知1」という。)がされ,平成30年10月3日に意見書が提出されるとともに手続補正がされ,平成30年11月14日付けで当審より拒絶理由通知(以下,「当審拒絶理由通知2」という。)がされ,平成30年11月28日に意見書が提出されるとともに手続補正がされたものである。
第2 原査定の概要
原査定(平成29年8月8日付け拒絶査定)の概要は次のとおりである。
本願請求項1-8に係る発明は,以下の引用文献1ないし5に基づいて,その発明の属する技術の分野における通常の知識を有する者(以下,「当業者」という。)が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができない。
引用文献等一覧
1.加藤 慶信 外4名,軽い!速い!ビッグデータ 分析システムの作り方,日経SYSTEMS,日本,日経BP社 Nikkei Business Publications,Inc.,2013年9月26日,第246号/2013年10月号,p.42-p.59
2.杉山 暢彦 外5名,NoSQLデータベースCassandraのXML仮想化システム,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2013年2月28日,第112巻/第466号,p.17-p.22
3.特開2014-191593号公報
4.特表2016-519810号公報
5.特開2015-185104号公報
第3 当審拒絶理由の概要
当審でなされた拒絶理由の概要は次のとおりである。
1.当審拒絶理由通知1
(1)本願出願は,請求項1-7に係る特許請求の範囲の記載が,特許法第36条第6項第2号に規定する要件を満たしていない。
(2)本願請求項1-7に係る発明は,以下の引用文献AないしDに基づいて,当業者が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができない。
引用文献等一覧
A.特開2014-191593号公報(原査定時の引用文献3)
B.特開2005-71050号公報
C.杉山 暢彦 外5名,NoSQLデータベースCassandraのXML仮想化システム,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2013年2月28日,第112巻/第466号,p.17-p.22(原査定時の引用文献2)
D.特表2016-519810号公報(原査定時の引用文献4)
2.当審拒絶理由通知2
(1)本願出願は,請求項1-7に係る特許請求の範囲の記載が,特許法第36条第6項第2号に規定する要件を満たしていない。
第4 本願発明
本願請求項1-7に係る発明(以下,それぞれ「本願発明1」-「本願発明7」という。)は,平成30年11月28日付けの手続補正で補正された特許請求の範囲の請求項1-7に記載された事項により特定される発明であり,以下のとおりの発明である。
「 【請求項1】
入力されたデータ格納要求を解釈し,多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクトに変換する解釈部と,
前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させると共に,前記オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を前記記憶部に記憶させる変換部と,
を備えるデータ管理装置。
【請求項2】
前記列指向型のデータ構造は,前記データ格納要求に含まれるレコードに含まれるデータが,データ項目ごとにひとまとまりの論理構造でまとめられたデータ構造であり,
前記変換部は,前記データ格納要求に含まれるデータ項目が,前記列指向型のデータ構造に設定されていないデータ項目である場合,新たな列を追加する,
請求項1記載のデータ管理装置。
【請求項3】
前記列指向型のデータ構造で管理されるデータを,入力されたデータ要求に含まれるデータ項目ごとに前記記憶部から読み出して出力するデータ利用者インターフェースを更に備える,
請求項1または2記載のデータ管理装置。
【請求項4】
前記データ利用者インターフェースは,指定されたデータ項目を含まないレコードに関しては,当該データ項目に対応するデータを,該当するデータが存在しないことを示す任意の形態のデータで埋める,
請求項3記載のデータ管理装置。
【請求項5】
前記データ利用者インターフェースは,指定されたデータ項目が,前記列指向型のデータ構造に設定されていないデータ項目である場合,当該データ項目についてのデータを全て,該当するデータが存在しないことを示す任意の形態のデータで埋める,
請求項3または4記載のデータ管理装置。
【請求項6】
コンピュータが,
入力されたデータ格納要求を解釈し,多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクトに変換し,
前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させると共に,前記オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を前記記憶部に記憶させる,
データ管理方法。
【請求項7】
コンピュータに,
入力されたデータ格納要求を解釈し,多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクトに変換させ,
前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させると共に,前記オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を前記記憶部に記憶させる処理を行わせる,
プログラム。」
第5 引用文献,引用発明等
1.引用文献1について
原査定の拒絶の理由に引用された引用文献1(加藤 慶信 外4名,軽い!速い!ビッグデータ 分析システムの作り方,日経SYSTEMS,日本,日経BP社 Nikkei Business Publications,Inc.,2013年9月26日,第246号/2013年10月号,p.42-p.59)には,図面とともに次の事項が記載されている。(下線は当審により付与。以下同様。)
A 「Treasure Dataやsplunkにログを送るのは専用ソフト「Fluentd」である。」(第45頁中欄2~3行)
B 「吉田氏らは代替案を探し,ログ収集専用ソフト(FluentdやFlume NGなどがある)に注目した。選んだのは「Fluentd」である。Webシステムから出力されるログを非同期で集めるので,Webシステム側への性能面での影響がなくなる。それだけでなく,オープンソースで,かつ,プラグイン形式で機能拡張できる点を高く評価した。これは二つめログの特性「形式がバラバラ」への対策として重要である。
Fluentdのプラグインサイト(http://fluentd.org/plugin/)を見ると,さまざまなプラグインが公開されていることが分かる。ログの読み込みに役立つプラグインがあるほか,例えばログをドキュメント指向データベースのMongoDBに保管したい場合,MongoDBに書き込むモジュールが必要になるが,そうしたモジュールはプラグインとして公開されている。自社で使いたいプラグインがあれば,既に開発されている可能性が高い。そうしたプラグインを利用できるのが,Fluentdの最大のメリットだ。吉田氏らはFluentdでログ収集基盤を構築し,以前よりも詳細なデータ収集が可能になったという。」(第49頁左欄17行~中欄17行)
C 「Treasure Data Platformはビックデータの分析基盤を提供するクラウドサービスである。大量データを収集して保管し,そのデータに対してクエリー処理を行う機能を備える。目指しているのは,エンジニアがより効果的に時間を使えるようにすることだ。
ビックデータ分析では膨大なデータを管理するだけでも手間がかかる。また,膨大なデータを短時間で分析する方法の一つとしてHadoopがよく利用されるが,Hadoopの運用・保守は容易ではない。つまり,本来やりたい「データ分析」以外に多くの時間が必要なのだ。Treasure Dataのサービスを使えば,そうした手間を減らせる。」(第52頁左欄1~16行)
D 「Treasure Dataの三つの特徴
Treasure Dataの特徴は,「スキーマレスなデータモデル」「Hadoopのスペシャリスト不要」「スモールスタートが可能で,月ごとの課金」の3点にまとめられる(図1)。順番に説明する。
スキーマレスなデータモデル
一つめの特徴は,データモデルがスキーマレスであることだ。Treasure Dataは基本的なデータ構造としてJSON(Javascript Object Notation)形式を採用している。データ型をあらかじめ設定する必要がなく,任意のカラムを加えたり削ったりできる。
・・・(中略)・・・
Hadoopのスペシャリスト不要
Treasure Dataを利用するエンジニアに求められる基本的な知識は,JSONとSQLである。Treasure DataにアップロードするデータはJSON形式なので,アプリケーションログなどをJSON形式に変換する必要があり,JSONの知識は欠かせない。
JSON形式でアップロードしたデータはTreasure Data内部ではカラム型データストアに格納される。そのデータ量は膨大なので,データを取り出す処理はHadoopを使って実行している。ただし,Treasure Dataを利用するエンジニアはHadoop処理を意識する必要はない。HiveやPigなどのフレームワークを利用できるからだ。この「Hadoopのスペシャリスト不要」というのは,Treasure Dataの二つめの特徴である。」(第52頁左欄17行~第53頁左欄17行)
E 「スモールスタートが可能で,月ごとの課金
オンプレミスでビックデータ分析システムを構築しようとすると,大規模な初期投資をすることが前提となってしまう。数千万円~数億円規模の予算を要することも少なくない。Hadoopのようなオープンソースソフトを使えばハードウェア以外の初期投資を抑えることができるが,エンジニアの工数を数週間から数ヶ月にわたって使うことになり,費用対効果の観点から望ましい選択とはいえない。
Treasure Dataはクラウドサービスで,一ヵ月単位の定額サブスクリプションモデルを採用している。無料プランがあるので小規模データで一定期間試した後,本番で有料プランにアップグレードすることが可能だ。月ごとの課金モデルであるため,長期間の契約に縛られることも,巨額の初期投資に頭を抱える必要もない。データ基盤の監視・運用はTreasure Dataの専門技術者が行うので,ユーザー企業のエンジニアはデータ分析に集中できる。
REST APIを備える
Treasure Dataの基盤を構成する主要な要素は,データを保管する「カラム型データストア」と,クエリー処理を実行するHadoopベースの「クエリー処理エンジン」である(図2)。さらにユーザーであるエンジニア側にインストールされる要素として,JSON形式のログを収集する「td-agent」,クエリーを送信する「td-command」などがある。
td-agentの実体はログ収集ソフトFluentdである。クエリーとその結果はtd-commandからだけではなく,BIソフトなどからREST API経由で送受信できる。カラム型データストアは,一般的なRDBMS(行指向データベース)より分析処理に向いている。特定のカラムを集計する際,一般的なRDBMSはレコードすべてをメモリーに読み込んで計算する必要があるが,カラム型なら特定のカラムだけをメモリーに読み込めばよく,その分,高速に計算できるのだ。」(第53頁左欄18行~右欄2行)
F 「
図2」
G 上記C及びFの記載から,引用文献1には,「ビックデータの分析基盤を提供するクラウドサービスであるTreasure Data Platformを用いたビックデータ分析システム」を構築する,ことが記載されているといえ,
上記「Treasure Data」について,上記Dの「Treasure Dataは基本的なデータ構造としてJSON(Javascript Object Notation)形式を採用している。データ型をあらかじめ設定する必要がなく」との記載,上記Eの「Treasure Dataの基盤を構成する主要な要素は,データを保管する「カラム型データストア」と,クエリー処理を実行するHadoopベースの「クエリー処理エンジン」である(図2)。さらにユーザーであるエンジニア側にインストールされる要素として,JSON形式のログを収集する「td-agent」,クエリーを送信する「td-command」などがある。td-agentの実体はログ収集ソフトFluentdである。」との記載から,「Treasure Dataは,基本的なデータ構造としてデータ型をあらかじめ設定する必要がないJSON(Javascript Object Notation)形式を採用しており,Treasure Dataの基盤を構成する主要な要素は,データを保管するカラム型データストアと,クエリー処理を実行するHadoopベースのクエリー処理エンジン,であり,さらに,ユーザーであるエンジニア側にインストールされる要素として,JSON形式のログを収集するログ収集ソフトFluentdである「td-agent」,クエリーを送信する「td-command」があ」ることが読み取れ,
また,上記「JSON形式のログを収集するログ収集ソフトFluentd」について,上記Aの「Treasure Dataやsplunkにログを送るのは専用ソフト「Fluentd」である。」との記載,上記Bの「選んだのは「Fluentd」である。・・・それだけでなく,オープンソースで,かつ,プラグイン形式で機能拡張できる点を高く評価した。これは二つめログの特性「形式がバラバラ」への対策として重要である。」との記載から,「上記ログ収集ソフトFluentdは,オープンソースで,かつ,プラグイン形式で機能拡張できることから,形式がバラバラのログデータに対応できるものであ」ることが読み取れ,
また,上記収集するログデータについて,上記Dの「Treasure DataにアップロードするデータはJSON形式なので,アプリケーションログなどをJSON形式に変換する必要があり」との記載から,「収集したログデータを,Treasure DataにアップロードするためにJSON形式に変換」することが読み取れ,
また,上記「JSON形式」でのデータの「カラム型データストア」への保管及び取り出しについて,上記Dの「JSON形式でアップロードしたデータはTreasure Data内部ではカラム型データストアに格納される。そのデータ量は膨大なので,データを取り出す処理はHadoopを使って実行している。」との記載から,「JSON形式でアップロードしたデータはTreasure Data内部ではカラム型データストアに格納され,データを取り出す処理はHadoopを使って実行して」いることが読み取れ,
また,上記「カラム型データストア」について,上記Eの「カラム型データストアは,一般的なRDBMS(行指向データベース)より分析処理に向いている。特定のカラムを集計する際,一般的なRDBMSはレコードすべてをメモリーに読み込んで計算する必要があるが,カラム型なら特定のカラムだけをメモリーに読み込めばよく,その分,高速に計算できるのだ。」との記載から,「カラム型データストアは,一般的なRDBMS(行指向データベース)より分析処理に向いており,特定のカラムを集計する際,一般的なRDBMSはレコードすべてをメモリーに読み込んで計算する必要があるが,カラム型なら特定のカラムだけをメモリーに読み込めばよく,その分,高速に計算できる」ことが読み取れる。
以上,上記A~Gの記載から,上記引用文献1には次の発明(以下,「引用発明」という。)が記載されていると認められる。
「ビックデータの分析基盤を提供するクラウドサービスであるTreasure Data Platformを用いたビックデータ分析システムであって,
上記Treasure Dataは,基本的なデータ構造として,データ型をあらかじめ設定する必要がないJSON(Javascript Object Notation)形式を採用しており,
Treasure Dataの基盤を構成する主要な要素は,データを保管するカラム型データストアと,クエリー処理を実行するHadoopベースのクエリー処理エンジン,であり,さらに,ユーザーであるエンジニア側にインストールされる要素として,JSON形式のログを収集するログ収集ソフトFluentdである「td-agent」,クエリーを送信する「td-command」があり,
上記ログ収集ソフトFluentdは,オープンソースで,かつ,プラグイン形式で機能拡張できることから,形式がバラバラのログデータに対応できるものであり,
収集したログデータを,Treasure DataにアップロードするためにJSON形式に変換し,
JSON形式でアップロードしたデータはTreasure Data内部ではカラム型データストアに格納され,
データを取り出す処理はHadoopを使って実行しており,
上記カラム型データストアは,一般的なRDBMS(行指向データベース)より分析処理に向いており,特定のカラムを集計する際,一般的なRDBMSはレコードすべてをメモリーに読み込んで計算する必要があるが,カラム型なら特定のカラムだけをメモリーに読み込めばよく,その分,高速に計算できる,
ビックデータ分析システム。」
2.引用文献2について
原査定の拒絶の理由に引用され,当審拒絶理由通知1にも引用された引用文献2(杉山 暢彦 外5名,NoSQLデータベースCassandraのXML仮想化システム,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2013年2月28日,第112巻/第466号,p.17-p.22)には,列指向データベースであるCassandraに動的に列を追加する,という技術的事項(特に,p.18 「3.2 スキーマの変換」,右欄下から6~同4行参照)が記載されている。
3.引用文献3について
原査定の拒絶の理由に引用され,当審拒絶理由通知1にも引用された引用文献3(特開2014-191593号公報)には,図面とともに次の事項が記載されている。
H 「【0039】
本実施形態は,以上の問題点を解決するカラムストア型データベース管理システムにおけるデータ圧縮方式を提供する。
【0040】
[解決しようとする課題]
カラムストア型のデータベースでは,同一列内に同じデータが複数の件数が格納されている場合は重複を排除することでデータを圧縮し,検索やデータ格納に必要なデータ量を削減することで参照処理性能が向上させている。しかし,この同一の列のデータは完全に一致している必要があり,データ内の一部が重複している場合でも,全体としてデータが異なればデータの圧縮効果を出すことはできなかった。この問題に対して,2つの解決のアプローチがある。
【0041】
1つ目は,データベースの利用者側がある一つの列を2つ以上の列に定義し,データを分割して格納し,一部の重複を有効活用する方法がある。しかしながら,この手法では,アプリケーション側に大きく影響があり,たとえばリレーショナルデータベースからカラムストア型データベース移行した場合などでは列定義を変更するといった場合に,アプリケーション改修のコストの問題から採用が難しい場合がある。
【0042】
2つ目は,列の格納データ自体を圧縮する手法である。この手法はディスクのI/Oがネックになりやすいディスクベースのデータ管理システムでは特に有効だが,I/O性能が高いメモリ上にデータを構築するメモリデータベース管理システムでは,相対的にCPUに十分負荷がかかりやすく,通常の圧縮アルゴリズムにてデータ圧縮や伸長を行うと全体のデータベース管理システムへの性能の影響を与えやすいという問題点がある。」
I 「【0048】
[構成]
図3を参照すると,本実施形態は,データベースクライアント1と,データベースクライアント1が接続するカラムストア型データベース管理システム2とを含む。本実施形態ではカラムストア型データベース管理システムは1台のマシンを例にしているが,分散データベース管理システムのように複数のマシン台数のデータベース管理システムでもよい。また,データベースクライアント1とカラムストア型データベース管理システム2はネットワークによって接続されていても,同一マシン内でも構わない。
【0049】
カラムストア型データベース管理システム2は,クエリ解析部21と実行計画部22とクエリ実行部23とテーブルデータ保存領域24とスキーマ管理データ保存領域25とを備えており,データベースクライアント1からの問い合わせを受け付け,データの挿入や検索,更新結果をデータベースクライアントに返却をするシステムである。図1に示した第1の実施形態との関係では,テーブルデータ保存領域24が表領域140Aに相当し,スキーマ管理データ保存領域25がスキーマ領域140Bに相当し,クエリ解析部21と実行計画部22とクエリ実行部23とがデータベース管理部150Aに相当する。
【0050】
クエリ解析部21は,データベースクライアントから発行されたSQLといった問い合わせ言語の内容を確認し,構文解析を実行する。
【0051】
実行計画部22は,クエリ解析部21で解析した問合せをどのような順番や方法で行えば最も効率的であるかを判定し,その実行計画を作成する。なお,クエリがSQL言語ではなく,データベースクライアント1からの操作をAPI等で直接クエリ実行部の動作を指定する場合は,クエリ解析部21や実行計画部22は通過しない。
【0052】
クエリ実行部23は,実行計画部22で解析した実行計画によるデータ操作命令,またはデータベースクライアント1から直接受けたデータ操作命令を受けて,テーブルデータ保存領域24やスキーマ管理データ保存領域25に向けてクエリを実行する。いわゆるデータベースのエグゼキュータと呼ばれる部分に相当する。
【0053】
テーブルデータ保存領域24は,スキーマ管理データ保存領域25に格納された定義に基づいたデータベースの実データやインデックスデータなどを格納している。このデータ保存領域は,メモリまたはディスク,その他のストレージであるかについては問わない。
【0054】
スキーマ管理データ保存領域25は,データベースのスキーマの定義情報を記憶・管理している。スキーマ情報には一般的に保持されるリレーショナルデータモデルでの表やインデックスなどの定義やそれらのデータがどのデバイスのどの位置に格納されているかといった情報が表定義領域251に格納されている。またこの表定義の中に,本実施形態で特徴的である論理的な表の中のどの列に対して分割したデータがテーブルデータ保存領域24のどの列に対応するかの情報も格納されているものとする。列分割文字テーブル252は,実際に列データを分割をする基準の文字と分割する最大の列数などの簡単なルールを格納している。」
J 「【0055】
[動作]
次に,図3乃至図6を参照して本実施形態の動作について詳細に説明する。
【0056】
まず,データベース管理者やユーザなどがデータベースクライアント1からデータベース管理システム2に,ユーザの必要なデータベースのスキーマ定義作成と実データの格納を実施する。なお,本実施形態ではテーブル定義上の1つの列を複数の列に分割して格納する方式を用いるが,その列を「分割圧縮列」と定義する。
【0057】
スキーマ定義について述べる。データベースクライアント1からコマンド等により,通常のカラムストア型データベースと同様にリレーショナルデータモデルの表定義やインデックス定義を行う。定義方法については一般的に,SQL言語によって行われる場合が多いが,その手法を限定するものではない。SQL言語を用いる場合はクエリ解析部21,実行計画部22を通じてクエリ実行部23で定義データを生成し,その結果をスキーマ管理データ保存領域25にある表定義領域251に格納する。なお,API等でデータベース管理システム独自の方法をとる場合は直接クエリ実行部23に命令し同様にデータを格納する。この時,表定義領域251の表定義には本実施形態の特徴である,各列に対して「分割圧縮列」であるか「通常」の列であるかを格納している。また,列分割文字テーブル252に格納されたどの分割ルールを使用するかの対応関係と分割後の複数の列データの対応関係も同様に各列に格納する領域を確保しており,これらの情報が表定義領域251に格納されている。
【0058】
列分割文字テーブル252には,分割する際の識別子や分割を行う列数などのルールが格納されている。これらの定義についても同様にデータベースクライアント1からSQL等を用いて定義をする。この時,分割された列のデータで完全一致する重複データができるように分割の列の定義を行うことが本実施形態を効果的に利用する方法である。アプリケーション開発者やデータベース管理者はデータの特性を理解し,分割列の実施有無とルールを判断する必要がある。
【0059】
これ以降,今回の説明のためのカラムストアデータモデルの例として,同じ列の中で実データの重複を排除してソートした形で格納する「実データ領域」をその列単位に作成・格納した上で,該当のデータ列を参照するインデックスを並べた「インデックス領域」に格納することで,カラム単位の列データを表現させている方式で説明する。「実データ領域」と「インデックス領域」はテーブルデータ保存領域24の内部に格納されている。具体的な例については後程図4以降の例で述べる。
【0060】
このデータ領域で重複を排除している機構については,一般的なカラムストア型データベースの特徴になり,それ以外のカラムストア型のデータモデルを利用している場合でも,同様に重複排除の効果を利用している。この重複排除の効果があれば本実施形態の「分割圧縮列」の手法は採用可能である。
【0061】
次に分割圧縮列を含めた表定義が完了したらデータベースクライアント1から表定義に対応した表データをカラムストア型データベース2にロードする。クエリ実行部23は,クライアント1から渡されたデータをテーブルデータ保存領域24に格納する。「分割圧縮列」以外の列については,通常の通り重複を排除した形でデータを格納する。また,本実施形態での特徴である「分割圧縮列」に指定されている列については,列のデータを列分割文字テーブル252にある指定された分割文字によって複数の列に分割したうえで,通常の列と同様に重複を排除した形で「実データ領域」にデータを作成する。「分割圧縮列」の「インデックス領域」については分割された実データ領域を分割した列分インデックスが配列と同様の形で保有しており,その配列に書かれているインデックスと対応している実データ領域のデータを順番に結合することで元データを復元することを可能としている。
【0062】
なお,すでに表にデータが存在している場合には,データベースクライアント1からのデータ定義操作によって分割圧縮列と分割ルールの関係性を該当する列に定義することで,クエリ実行部25は同様に内部的な列データの分割を行えるものとし,反対に内部列分割を解除して1つの列としてデータを再構成する機能も保有している。」
K 「【0063】
ここで具体的に図4のように顧客テーブルというテーブルを定義し,一般的なカラムストア型データモデルの場合と,本実施形態の場合の違いを述べる。
【0064】
顧客テーブルは,”顧客id“,”性”,”名”,”メールアドレス”,”性別”という列を持っている。この顧客テーブルを既存のカラムストア型データベースモデルにロードした例が図5のようになる。テーブルデータ保存領域24にある「実データ領域」には実データの重複が排除されて配置されており,インデックス領域には列の位置に該当する実データと対応した「実データ領域」へのインデックス番号が記載されている。このことにより論理的な顧客テーブルを格納している。例えば,顧客テーブルの2列目の“姓”を参照する時は,顧客テーブルのインデックス列の2列目の姓を確認する。この“1”をもとに実データ列の姓の1番目にある値を確認すれば「鈴木」であることがわかる。」
以上,上記HないしKの記載から,上記引用文献3には次の発明(以下,「引用文献3記載事項」という。)が記載されていると認められる。
「カラムストア型データベース管理システムであって,
カラムストア型のデータベースでは,同一列内に同じデータが複数の件数が格納されている場合は重複を排除することでデータを圧縮し,検索やデータ格納に必要なデータ量を削減することで参照処理性能が向上させるものであり,
上記カラムストア型データベース管理システムは,クエリ解析部と,実行計画部と,クエリ実行部と,テーブルデータ保存領域と,スキーマ管理データ保存領域と,を備えており,
上記クエリ解析部は,データベースクライアントから発行されたSQLといった問い合わせ言語の内容を確認し,構文解析を実行し,
上記実行計画部は,上記クエリ解析部で解析した問合せをどのような順番や方法で行えば最も効率的であるかを判定し,その実行計画を作成し,
上記クエリ実行部は,上記実行計画部で解析した実行計画によるデータ操作命令,またはデータベースクライアントから直接受けたデータ操作命令を受けて,テーブルデータ保存領域やスキーマ管理データ保存領域に向けてクエリを実行し,
上記テーブルデータ保存領域は,スキーマ管理データ保存領域に格納された定義に基づいたデータベースの実データやインデックスデータなどを格納し,
上記スキーマ管理データ保存領域は,データベースのスキーマの定義情報を記憶・管理するものであり,
データベース管理者やユーザなどがデータベースクライアントからデータベース管理システムに,ユーザの必要なデータベースのスキーマ定義作成と実データの格納を実施し,その際に,テーブル定義上の1つの列を複数の列に分割して格納する方式を用い,その列を「分割圧縮列」と定義するものであり,
上記「分割圧縮列」を含めた表定義が完了したら,データベースクライアントから表定義に対応した表データをカラムストア型データベースにロードし,その際,上記クエリ実行部は,クライアントから渡されたデータを上記テーブルデータ保存領域に格納するものであり,「分割圧縮列」以外の列については,重複を排除した形でデータを格納し,「分割圧縮列」に指定されている列については,列のデータを列分割文字テーブルにある指定された分割文字によって複数の列に分割したうえで,通常の列と同様に重複を排除した形で「実データ領域」にデータを作成し,「分割圧縮列」の「インデックス領域」については分割された実データ領域を分割した列分インデックスが配列と同様の形で保有しており,その配列に書かれているインデックスと対応している実データ領域のデータを順番に結合することで元データを復元することを可能としており,
テーブルデータ保存領域にある「実データ領域」には実データの重複が排除されて配置されており,インデックス領域には列の位置に該当する実データと対応した「実データ領域」へのインデックス番号が記載されている,
カラムストア型データベース管理システム。」
4.引用文献4について
原査定の拒絶の理由に引用され,当審拒絶理由通知1にも引用された引用文献4(特表2016-519810号公報)の段落【0229】,【0310】には,カラム型ストレージにおいて,インポートされたローに存在しない新しいテーブルのカラムについては,ヌル値を用いる,という技術的事項が記載されている。
5.引用文献5について
原査定で引用された引用文献5(特開2015-185104号公報)の段落【0024】には,カラム型データベース管理システムにおいてスキーマ管理データを格納する,という技術的事項が記載されている。
6.引用文献Bについて
当審拒絶理由通知1に引用された引用文献B(特開2005-71050号公報)の段落【0032】ないし【0041】には,データベースに対する要求を,木構造形式の抽象化した態様として構成する,という技術的事項が記載されている。
第6 対比・判断
1.本願発明1について
(1)対比
本願発明1と引用発明とを対比する。
ア 引用発明である「ビックデータ分析システム」は,「JSON形式でアップロードしたデータ」を「カラム型データストアに格納」するために,「ログ収集ソフトFluentd」が「形式がバラバラのログデータ」を収集し,「収集したログデータを,Treasure DataにアップロードするためにJSON形式に変換」するものであり,データを「ビックデータ分析システム」にアップロードするための要求が当然に入力されているものと解されることから,当該アップロードのための要求は,データ格納要求といいうるものである。
そして,引用発明である上記「ビックデータ分析システム」による,上記「JSON形式」への「変換」は,「アップロード」のための上記要求を受けて,「収集したログデータ」に対し,「形式がバラバラのログデータに対応」して行うものであるから,ログデータのバラバラな形式から「JSON形式」に変更するための所定の解釈を行っていると解され,よって,引用発明である「ビックデータ分析システム」は,「アップロード」のための要求内容を解釈し,その結果,「収集したログデータ」を,「Treasure Dataにアップロード」するためのデータに変換しているものと認められる。
以上を踏まえると,引用発明の上記「アップロード」のための要求は本願発明1の「データ格納要求」に相当する。
また,引用発明の上記「収集したログデータ」は,「形式がバラバラ」であることからして木構造を含む所定の構造のものであるかは特定されていないものの,本願発明1の「多次元空間での木構造」が,多階層の木構造形式のデータ,を意味するものと文言上解されることを踏まえると,両者は,“データ”である点で共通する。
また,引用発明の上記「Treasure DataにアップロードするためにJSON形式に変換」されるデータは,json等のデータフォーマットから切り離した上で抽象化されたものではないものの,「カラム型データストア」への「格納」対象のデータであることから,「オブジェクト」といいうるものであり,また,本願発明1の「json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクト」が,json等の具体的なデータフォーマットにより規定されない,配列において次元を拡張可能な形式の抽象化されたオブジェクト,を意味するものと文言上解されることを踏まえると,両者は,“オブジェクト”である点で共通する。
そして,引用発明である「ビックデータ分析システム」における,上記「アップロード」のための要求内容を解釈し,上記「収集したログデータ」を,「Treasure DataにアップロードするためにJSON形式」のデータに「変換」するための構成は,解釈部といいうるものである。
イ 上記アを踏まえると,後記する点で相違するものの,本願発明1の「入力されたデータ格納要求を解釈し,多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクトに変換する解釈部」と,引用発明の「アップロード」のための要求に応じて,「収集したログデータを,Treasure DataにアップロードするためにJSON形式に変換」するための構成とは,“入力されたデータ格納要求を解釈し,データを,オブジェクトに変換する解釈部”である点で共通する。
ウ 引用発明である上記「ビックデータ分析システム」では,「JSON形式でアップロードしたデータはTreasure Data内部ではカラム型データストアに格納され」るものであり,「上記カラム型データストアは,一般的なRDBMS(行指向データベース)より分析処理に向いており,特定のカラムを集計する際,一般的なRDBMSはレコードすべてをメモリーに読み込んで計算する必要があるが,カラム型なら特定のカラムだけをメモリーに読み込めばよく,その分,高速に計算できる」ものであることから,「カラム型データストア」に格納される際のデータは,特定のカラムについて集計する等,カラムすなわち列方向の処理を指向して格納されるものであって,列指向型のデータ構造で管理されるデータあるといえ,また,当該データはユーザに係るログデータに基づくものであることから,クライアントデータといいうるものであり,さらに,「JSON形式でアップロードしたデータ」は,「データ型をあらかじめ設定する必要がない」ものであり,列指向型のデータ構造とは異なるデータ構造のものといえることから,引用発明である上記「ビックデータ分析システム」は,列指向型のデータ構造とは異なるデータ構造の「JSON形式でアップロードしたデータ」を,「カラム型データストアに格納」するために,列指向型のデータ構造で管理されるクライアントデータに変換するものであるといえ,そのための構成を有するものと解される。
そうすると,後記する点で相違するものの,本願発明1の「前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させると共に,前記オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を前記記憶部に記憶させる変換部」と,引用発明の「JSON形式でアップロードしたデータ」を「Treasure Data内部ではカラム型データストアに格納」するために,「カラム型データストアは,一般的なRDBMS(行指向データベース)より分析処理に向いており,特定のカラムを集計する際,一般的なRDBMSはレコードすべてをメモリーに読み込んで計算する必要があるが,カラム型なら特定のカラムだけをメモリーに読み込めばよく,その分,高速に計算できる」ようにするための構成は,“前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させる変換部”である点で共通する。
エ 上記アないしウを総合すると,引用発明である「ビックデータ分析システム」は,本願発明1である「データ管理装置」に対応するといえる。
上記アないしエの対比によれば,本願発明1と引用発明とは,次の点で一致し,そして相違する。
(一致点)
入力されたデータ格納要求を解釈し,データを,オブジェクトに変換する解釈部と,
前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させる変換部と,
を備えるデータ管理装置。
(相違点1)
解釈部に関し,
本願発明1は,「多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式」のオブジェクトに変換するのに対して,
引用発明は,そのように特定されていない点。
(相違点2)
変換部に関し,
本願発明1は,前記オブジェクトに変換されたデータを,「予め配列が確保されていない」列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させるのに対して,
引用発明は,そのように特定されていない点。
(相違点3)
変換部に関し,
本願発明1は,「オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を前記記憶部に記憶させる」のに対して,
引用発明は,そのように特定されていない点。
(2)相違点についての判断
事案に鑑みて,「多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式」のオブジェクトに関連する,上記相違点1及び2について,先に検討する。
上記相違点1及び2に係る本願発明1の構成である,「多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式」のオブジェクトに変換し,前記オブジェクトに変換されたデータを,「予め配列が確保されていない」列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させることは,上記引用文献2ないし5,及び,Bのいずれにも記載されておらず,また,本願出願前において周知技術であるともいえない。
特に,引用文献3(当審拒絶理由通知1における引用文献A)には,上記第5の3.に示した引用文献3記載事項が記載されており,テーブルデータ保存領域に格納される,実データやインデックスデータの具体的なデータ構造について何ら規定されていないことから,相違点1及び2に係る本願発明1の構成について開示しているとはいえない。
そうすると,引用発明に基づいて,相違点1及び2に係る本願発明1の構成とすることは,当業者が容易になし得ることであるとはいえない。
したがって,本願発明1は,相違点3を検討するまでもなく,当業者であっても引用発明,引用文献2ないし5,及び,Bに記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。
2.本願発明2-7について
本願発明6,7は,本願発明1とカテゴリーが異なるだけであるから,本願発明1と同様の理由により,引用発明,引用文献2ないし5,及び,Bに記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。
本願発明2-5は,本願発明1を更に限定したものであるので,本願発明1と同様の理由により,引用発明,引用文献2ないし5,及び,Bに記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。
第7 原査定についての判断
(特許法第29条第2項について)
平成30年11月28日付けの手続補正により,補正後の請求項1は,「入力されたデータ格納要求を解釈し,多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクトに変換する解釈部」と,「前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させる」「変換部」という技術的事項を有するものとなった。当該技術的事項は,上記第6の1.(2)でも示したとおり,原査定における引用文献1ないし5には記載されておらず,本願出願前における周知技術でもないので,本願発明1は,当業者であっても,原査定における引用文献1ないし5に基づいて容易に発明できたものではない。本願発明2-7は,本願発明1とカテゴリーが異なるだけ,または,更に限定したものであるので,同様に,当業者であっても,原査定における引用文献1ないし5に基づいて容易に発明できたものではない。
したがって,原査定を維持することはできない。
第8 当審拒絶理由について
1.特許法第36条第6項第2号について
(1)当審拒絶理由通知1では,請求項1の「多次元空間での木構造をデータフォーマットから切り離して抽象化したオブジェクトに変換する解釈部」との記載は,「多次元空間での木構造」を「抽象化したオブジェクト」に「変換する」という「解釈部」の処理が具体的にどのような処理であり,また,当該処理の結果得られる「抽象化したオブジェクト」が,具体的にどのような内容及び形態のものであるのか,不明りょうであるとの拒絶の理由を通知しているが,平成30年11月28日付けの手続補正において,「多次元空間での木構造を,json, xml, avro, 又はmessage packを含むデータフォーマットから切り離して抽象化し,配列に対して次元を拡張可能な形式のオブジェクトに変換する解釈部」と補正された結果,この拒絶の理由は解消した。
(2)当審拒絶理由通知1では,請求項1の「前記解釈部により抽象表現に変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理しながら記憶部に記憶させる」との記載は,まず,「解釈部により抽象表現に変換されたデータ」との表現が,「解釈部」により「変換」された「抽象化したオブジェクト」自体を意味するのか,当該「抽象化したオブジェクト」からさらに変換された別の「データ」を意味するのか,不明であり,そして,上記「記憶部」に「記憶」する対象が,上記「抽象化したオブジェクト」自体であるのか,当該「抽象化したオブジェクト」から「列指向型のデータ構造」にさらに「変換」した「列指向型のデータ構造で管理されるデータ」であるのか,不明りょうであるとの拒絶の理由を通知しているが,平成30年10月3日付けの手続補正において,「前記オブジェクトに変換されたデータを,前記変換されたデータとは別のデータ構造であって,予め配列が確保されていない列指向型のデータ構造で管理されるクライアントデータに変換して記憶部に記憶させる」と補正された結果,この拒絶の理由は解消した。
(3)当審拒絶理由通知1では,請求項1の「前記抽象化したオブジェクトに基づいて,前記列指向型のデータ構造で管理されるデータを,行方向に読み出し可能にするための参照情報を生成し」との記載は,「抽象化したオブジェクト」から「参照情報」を「生成」するとの処理が,具体的に,どのような処理を意味するのか,不明りょうであるとの拒絶の理由を通知しているが,平成30年11月28日付けの手続補正において,「前記オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を」と補正された結果,この拒絶の理由は解消した。
(4)当審拒絶理由通知2では,請求項1の「行列に対して次元を追加可能な形式のオブジェクト」における「行列に対して次元を追加可能な」との記載は,「オブジェクト」のどのような形式の態様について記載しているのか,明確でなく,また,請求項1の「前記オブジェクトを,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報として前記記憶部に記憶させる」との記載は,「オブジェクト」と「参照情報」とがどのような関係にあるのか,明確でないとの拒絶の理由を通知しているが,平成30年11月28日付けの手続補正において,「配列に対して次元を拡張可能な」,「前記オブジェクトに含まれる,前記列指向型のデータ構造で管理されるデータを行方向に読み出し可能にするための参照情報を前記記憶部に記憶させる」と補正された結果,この拒絶の理由は解消した。
2.特許法第29条第2項について
上記「第6 対比・判断」で検討のとおり,平成30年11月28日付けの手続補正により,この拒絶の理由は解消した。
第9 むすび
以上のとおり,本願発明1-7は,当業者が引用発明,引用文献2ないし5,及び,Bに記載された技術的事項に基づいて容易に発明することができたものではない。
したがって,原査定の拒絶理由を検討してもその理由によって拒絶すべきものとすることはできない。
また,他に本願を拒絶すべき理由を発見しない。
よって,結論のとおり審決する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
J-PlatPat 審決検索を開く
2017-016839