JP6956299B1 - データ処理装置とデータ処理プログラムとデータ処理方法 - Google Patents

データ処理装置とデータ処理プログラムとデータ処理方法 Download PDF

Info

Publication number
JP6956299B1
JP6956299B1 JP2021525282A JP2021525282A JP6956299B1 JP 6956299 B1 JP6956299 B1 JP 6956299B1 JP 2021525282 A JP2021525282 A JP 2021525282A JP 2021525282 A JP2021525282 A JP 2021525282A JP 6956299 B1 JP6956299 B1 JP 6956299B1
Authority
JP
Japan
Prior art keywords
data
compressed
value
partial data
dictionary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021525282A
Other languages
English (en)
Other versions
JPWO2021106104A1 (ja
Inventor
国峰 焦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Retail AI Inc.
Original Assignee
Retail AI Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Retail AI Inc. filed Critical Retail AI Inc.
Application granted granted Critical
Publication of JP6956299B1 publication Critical patent/JP6956299B1/ja
Publication of JPWO2021106104A1 publication Critical patent/JPWO2021106104A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

データの処理効率を高めることができるデータ処理装置とデータ処理プログラムとデータ処理方法とを得る。複数のレコードを含む取引データ(D1)を処理する装置(1)であって、レコードのそれぞれは、少なくとも1つの項目の値を含み、項目は、取引数量を含み、取引データが記憶される記憶部(2)と、記憶部(2)に記憶されている取引データに含まれる取引数量の値に基づいて、取引データに対応する圧縮データ(D6)を生成する圧縮データ生成部(5)と、を有してなり、取引数量の値は、1以上の自然数が含まれる。

Description

本発明は、データ処理装置とデータ処理プログラムとデータ処理方法に関するものである。
小売店は、客に商品を販売したり、取引先に商品を発注したり、取引先から商品を仕入れたりするなど、取引が発生するごとに取引データを生成して蓄積する。
例えば、小売店は、客に商品を販売するごとに、客、商品、販売価格などを特定する情報を含む販売データを生成して蓄積しておき、蓄積された販売データに基づいて、売上の管理、商品の在庫の管理、商品の発注の管理、あるいは、客の購買分析などを行う。販売対象となる商品の点数が多く、商品を購入する客数が多いスーパーマーケット、特に、多数の店舗を運営するチェーンストアにおいては、販売データの発生件数は膨大となる。
膨大な販売データを蓄積し、あるいは、膨大な販売データを分析するために高速に演算するとなると、大規模なコンピュータのハードウェア資源が必要となる。そのため、膨大なデータの容量を小さくなるように圧縮して蓄積し、あるいは、圧縮されたデータを高速に演算できるように復元(伸張・展開・解凍などとも称される)するなど、データの圧縮や復元といったデータの処理の効率を高めることが求められる。
これまでも、膨大なデータを圧縮する方法が提案されている(例えば、特許文献1参照)。
特開2008−287723号公報
本発明は、データの処理効率を高めることができるデータ処理装置とデータ処理プログラムとデータ処理方法とを提供することを目的とする。
本発明は、複数のレコードを含む取引データを処理する装置であって、レコードのそれぞれは、少なくとも1つの項目の値を含み、項目は、取引数量を含み、取引データが記憶される記憶部と、記憶部に記憶されている取引データに含まれる取引数量の値に基づいて、取引データに対応する圧縮データを生成する圧縮データ生成部と、を有してなり、取引数量の値は、1以外の自然数が含まれる、ことを特徴とする。
本発明によれば、データの処理効率を高めることができる。
本発明にかかるデータ処理装置の実施の形態を示すブロック図である。 本発明にかかるデータ処理装置により処理されるデータの関係を示す模式図である。 本発明にかかるデータ処理装置により処理されるデータの関係を示す別の模式図である。 本発明にかかるデータ処理装置により処理されるデータの関係を示すさらに別の模式図である。 本発明にかかるデータ処理装置により処理される被圧縮データの例を示す模式図である。 図5の被圧縮データのソート処理後の例を示す模式図である。 本発明にかかるデータ処理装置により処理される部分データの例を示す模式図である。 本発明にかかるデータ処理装置により処理される圧縮部分データの例を示す模式図である。 本発明にかかるデータ処理装置により処理される圧縮部分データの別の例を示す模式図である。 本発明にかかるデータ処理装置により処理される圧縮部分データのさらに別の例を示す模式図である。 本発明にかかるデータ処理装置により処理される辞書データの例を示す模式図であり、(a)は顧客ID辞書、(b)は日付辞書、(c)はレシート順位辞書である。 本発明にかかるデータ処理装置により処理されるインデックスデータの例を示す模式図であり、(a)は圧縮ブロックのオフセット値、(b)は辞書ブロックのオフセット値である。 本発明にかかるデータ処理装置により処理される圧縮データのデータ構造を示す模式図である。 本発明にかかるデータ処理方法の実施の形態を示すフローチャートである。 本発明にかかるデータ処理方法に含まれる部分データ生成処理の例を示すフローチャートである。 本発明にかかるデータ処理方法に含まれる圧縮部分データ生成処理の例を示すフローチャートである。 本発明にかかるデータ処理方法に含まれる圧縮データ生成処理の例を示すフローチャートである。 本発明にかかるデータ処理方法による圧縮率の実施例を示す表である。
以下、図面を参照しながら、本発明にかかるデータ処理装置とデータ処理プログラムとデータ処理方法の実施の形態について説明する
ここで、以下に説明する本発明にかかるデータ処理装置は、被圧縮データを圧縮処理(データの容量を削減する処理)して圧縮データを生成する場合を例に説明する。すなわち、圧縮処理は、本発明におけるデータ処理の例である。
なお、本発明におけるデータ処理は、被圧縮データから圧縮データを生成する圧縮処理の他に、例えば、圧縮データから被圧縮データの全部または一部を復元する復元処理を含んでもよい。
●データ処理装置の構成●
図1は、本発明にかかるデータ処理装置(以下「本装置」という。)の実施の形態を示すブロック図である。
本装置1は、記憶部2と、部分データ生成部3と、圧縮部分データ生成部4と、圧縮データ生成部5と、を有してなる。
本装置は、パーソナルコンピュータなどの情報処理装置で実現される。本装置では、本発明にかかるデータ処理プログラム(以下「本プログラム」という。)が動作して、本プログラムが本装置のハードウェア資源と協働して、後述する本発明にかかるデータ処理方法(以下「本方法」という。)を実現する。
本装置1のハードウェア資源は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)などのプロセッサを含む。プロセッサは、本プログラムに記述された命令を実行することで、本装置1が備える前述の各手段(部分データ生成部3と、圧縮部分データ生成部4と、圧縮データ生成部5)を実現する。
なお、図示しないコンピュータに本プログラムを実行させることで、同コンピュータを本装置と同様に機能させて、同コンピュータに本方法を実行させることができる。
記憶部2は、本プログラムや、本装置1が本方法を実行するために必要な情報を記憶する。記憶部2は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、RAM(Random Access Memory)、フラッシュメモリなどの半導体メモリ素子、などにより構成される。
記憶部2に記憶される情報は、被圧縮データD1と、部分データD2と、圧縮部分データD3と、辞書データD4と、インデックスデータD5と、圧縮データD6と、を含む。各データの構造などについては、後述する。
部分データ生成部3は、被圧縮データD1から部分データD2を生成する。
圧縮部分データ生成部4は、部分データD2から、圧縮部分データD3と辞書データD4とインデックスデータD5とを生成する。
圧縮データ生成部5は、圧縮部分データD3と辞書データD4とインデックスデータD5とから、圧縮データD6を生成する。
●データの構造
図2,3,4は、本装置により処理される複数のデータ間の関係を示す模式図である。
図2は、被圧縮データD1から、部分データD2aと部分データD2bと部分データD2cとが生成されることを示す。
同図は、部分データD2aから圧縮部分データD3aが生成され、部分データD2bから圧縮部分データD3bが生成され、部分データD2cから圧縮部分データD3cが生成されることを示す。
同図は、部分データD2aと部分データD2bと部分データD2cとから、辞書データD4が生成されることを示す。
図3は、圧縮部分データD3aと圧縮部分データD3bと圧縮部分データD3cとから、インデックスデータD5が生成されることを示す(より具体的には、インデックスデータD5は、各圧縮部分データD3のデータ長に基づいて生成される)。
図4は、圧縮部分データD3aと圧縮部分データD3bと圧縮部分データD3cと辞書データD4とインデックスデータD5とから、圧縮データD6が生成されることを示す。
●被圧縮データ
図5は、被圧縮データD1の例を示す模式図である。
ここで、本実施の形態における被圧縮データD1は、小売店の販売データ(レシートデータ)である。
なお、本発明における被圧縮データは、例えば、取引者間での商品の取引数量を含む取引データでもよい。小売店の販売データは、小売店と小売店の客との間での商品の販売数量を含む取引データの一例である。なお、取引データとして、例えば、小売店と小売店の発注先との間での商品の発注量を含む発注データや、小売店と小売店の仕入先との間での商品の仕入量を含む仕入データを用いてもよい。
取引者間での商品の取引数量は、例えば、自然数であり、1以外の自然数が含まれる。また、小売店では、同一商品が、3個単位(1/4ダース)、6個単位(半ダース)あるいは12個単位(1ダース)で販売されることもある。この場合の取引数量は、3の倍数あるいは6の倍数が含まれる。
被圧縮データD1をはじめ、本装置1により処理される各データD2,D3,D4,D5,D6のファイル形式は、テキスト形式である。
同図は、被圧縮データD1がレシートの発行順に並んだ複数(6件)のレコードを含んでいることを示す。
同図は、各レコードを構成するデータの項目が「レシート番号」「店舗番号」「顧客ID」「日付」「時間帯」「商品コード」「購入数量」「購入金額」であることを示す。
同図は、例えば、1行目のレコードにおいて、レシート番号「1001」と、店舗番号「27」と、顧客ID「A」と、日付「20191001」と、時間帯「12」と、商品コード「123」と、購入数量「1」と、購入金額「299」と、の各情報が関連付けて記憶部2に記憶されていることを示す。
ここで、各情報が関連付けて記憶部2に記憶されているとは、本装置1がいずれかの情報から他の情報を検索して読み出し可能に記憶部2に記憶されていることをいう(以下、同じ)。すなわち、例えば、本装置1は、レシート番号「1001」を用いて、同レシート番号「1001」と関連付けて記憶されている、例えば、店舗番号「27」を、記憶部2から読み出すことができる。
同図は、顧客ID「A」の客が、店舗番号「27」の店舗において、「2019年10月1日」の「12時台」に、商品コード「123」の商品「1点」を「299円」で購入したことを示す。また、同図は、顧客ID「A」の同じ客が、同じ店舗で同時に、商品コード「234」の商品「1点」を「399円」で購入したことも示している。さらに、同図は、顧客ID「A」の客が購入した商品は前述の2点で、その購入履歴は同じレシート番号「1001」のレシートで店舗により管理され、例えば、店舗から客に提供されるレシート用紙に印字されていたことを示している。
図6は、被圧縮データD1のレコードを構成する複数の項目のうち、分割項目の値に基づいて、複数のレコードがソート処理された後の被圧縮データD1の例を示す模式図である。分割項目は、「商品コード」である。同図は、6件のレコードが商品コードの昇順にソートされていることを示す(なお、本実施の形態において、6件のレコードの店舗番号は同じ「27」であるため、店舗番号の値でのソート処理の前後でレコードの並びに変更はない)。ソート処理の具体的な処理内容などについては、後述する。
ここで、レコードを構成する各項目の値は、数値や文字列である。
●部分データ
図7は、部分データD2の例を示す模式図である。
部分データD2は、被圧縮データD1に含まれる複数のレコードを、分割項目の値が共通するレコードごとに分割(つまり、レコード単位に分割)して生成されたデータである。換言すれば、部分データD2に含まれるすべてのレコードの分割項目の値は、共通(同一)である。分割されて生成された部分データD2のそれぞれは、1または複数のレコードを含む。
同図は、被圧縮データD1が3つの部分データに分割されていることを示し、(a)が商品コード「123」の部分データD2aで、(b)が商品コード「234」の部分データD2bで、(c)が商品コード「345」の部分データD2cである。
●圧縮部分データ
図8,9,10は、圧縮部分データD3の例を示す模式図であり、図8は圧縮部分データD3a、図9は圧縮部分データD3b、図10は圧縮部分データD3c、の例である。
圧縮部分データD3は、部分データD2に含まれる項目のうち、圧縮項目の値に基づいて、部分データD2ごとに生成されるデータである。より具体的には、圧縮部分データD3は、部分データD2ごとに、部分データD2に含まれるレコードのうち圧縮項目の値が同じレコードの数に基づいて、生成される。圧縮項目は、被圧縮データD1のレコードを構成する複数の項目のうち、「購入数量」である。
ここで、「購入数量」の値は、自然数である。すなわち、「購入数量」は、「1」以外の自然数も含む。また、「購入数量」の値は、半ダースを示す「6」や、その倍数である「12」「18」などの自然数も含まれる。つまり、例えば、商品を半ダース単位(つまり「6」個単位)で販売する小売店の販売データに含まれる「購入数量」の値は、「6」の倍数である。
圧縮部分データD3は、部分データD2に含まれる辞書項目の値に代えて、辞書項目の値ごとに決定された辞書値を含む。つまり、圧縮部分データD3において、辞書項目の値は、辞書値に置換されている。辞書項目は、「顧客ID」と「日付」である。辞書値のデータ長は、辞書項目の値のデータ長よりも短い(小さい)。辞書項目の値と、対応する辞書値とは、関連付けられた辞書データD4として記憶部2に記憶される。
例えば、図8は、圧縮部分データD3aに含まれる情報が、データの先頭から、商品コード「123」、店舗番号「27」、購入数量「1」、購入数量の繰返回数「3」、購入金額「299」、購入金額の繰返回数「3」、1人目の客の顧客ID「0」、2人目の客の顧客ID「1」、3人目の客の顧客ID「2」、1人目の日付「0」、2人目の日付「0」、3人目の日付「0」、1人目の時間帯「12」、2人目の時間帯「13」、3人目の時間帯「14」、1人目のレシート順位「0」、2人目のレシート順位「0」、3人目のレシート順位「0」、であることを示す。
すなわち、同図は、商品コード「123」の商品が店舗番号「27」の店舗において、購入数量「1」のレコードの繰返回数が「3」で、購入金額「299」のレコードの繰返回数が「3」であることを示している。すなわち、部分データD2aは、同商品1点が299円で購入(販売)されたことを示すレコードを3件含むことを示す。
同図は、同商品を購入した3人の客のうち、1人目の客の顧客IDの辞書値が「0」、2人目の客の顧客IDの辞書値が「1」、3人目の客の顧客IDの辞書値が「2」、であることを示す。顧客IDの辞書値については、後述する。
同図は、同商品を購入した3人の客のうち、1人目の客が購入した日付の辞書値が「0」、2人目の客が購入した日付の辞書値が「0」、3人目の客が購入した日付の辞書値が「0」、であることを示す。日付の辞書値については、後述する。
同図は、同商品を購入した3人の客のうち、1人目の客が購入した時間帯は「12時台」、2人目の客が購入した時間帯は「13時台」、3人目の客が購入した時間帯は「14時台」、であることを示す。
同図は、同商品を購入した3人の客のうち、1人目の客のレシート順位の辞書値が「0」、2人目の客のレシート順位の辞書値が「0」、3人目の客のレシート順位の辞書値が「0」、であることを示す。レシート順位の辞書値については、後述する。
●辞書データ
図11は、辞書データD4の例を示す模式図であり、(a)は顧客ID辞書、(b)は日付辞書、(c)はレシート順位辞書、である。
辞書データD4は、部分データD2aと部分データD2bと部分データD2cとで共通に生成される。
なお、本発明において、辞書データは、部分データごとに生成されてもよい。
顧客ID辞書は、顧客IDの値ごとの辞書値を含むデータである。
同図(a)は、顧客ID「A」とその辞書値「0」、顧客ID「B」とその辞書値「1」、顧客ID「C」とその辞書値「2」、とが関連付けられて顧客ID辞書として記憶されていることを示す。辞書値は、圧縮部分データ生成部4が、部分データD2から圧縮部分データD3を生成する際に、部分データD2に含まれる辞書IDの値ごとに決定する。
辞書項目の値ごとの辞書値は、部分データD2aと部分データD2bと部分データD2cとで共通に生成される。すなわち、例えば、部分データD2aに含まれる顧客ID「A」の辞書値「0」は、部分データD2bに含まれる顧客ID「A」の辞書値でもある。
日付辞書は、日付の値ごとの辞書値を含むデータである。
同図(b)は、日付「20191001」とその辞書値「0」とが関連付けられて日付辞書として記憶されていることを示す。辞書値は、圧縮部分データ生成部4が、部分データD2から圧縮部分データD3を生成する際に、部分データD2に含まれる日付の値ごとに決定する。
レシート順位辞書は、部分データD2に含まれるレコードのうち、顧客IDごとのレシート番号の順位を含むデータである。
同図(c)は、レシート順位「1番目」とその辞書値「0」とが関連付けられてレシート順位辞書として記憶されていることを示す。辞書値は、圧縮部分データ生成部4が、部分データD2から圧縮部分データD3を生成する際に、部分データD2に含まれるレコードのうち、顧客IDごとのレシートのレシート番号の順位を特定して決定する。
例えば、図7(a)に示された部分データD2aは、3件のレコードを含んでいて、1件目のレコードは顧客ID「A」の顧客の部分データD2aにおける1番目のレコード(レシート)、2件目のレコードは顧客ID「B」の顧客の部分データD2aにおける1番目のレコード(レシート)、3件目のレコードは顧客ID「C」の顧客の部分データD2aにおける1番目のレコード(レシート)である。また、図11(c)に示された辞書データD4のレシート順位辞書において、レシート順位「1番目」に対応する辞書値は「0」である。よって、図8に示された圧縮部分データD3aにおいて、商品コード「123」を店舗番号「27」で購入した3人の客のうち、1人目の客のレシート順位の辞書値は「0」、2人目の客のレシート順位の辞書値は「0」、3人目の客のレシート順位の辞書値は「0」、となっている。
前述のとおり、本実施の形態では、辞書値は、3つの圧縮部分データで共通に生成される。よって、例えば、図7に示されたように、部分データD2a、D2b、D2cに含まれる日付「20191001」の辞書値は、図11(b)に示されたように「0」である。そのため、図8,9,10に示された圧縮部分データD3a、D3b、D3cのいずれにおいても、日付「20191001」は共通の辞書値「0」に置換されている。
●インデックスデータ
図12は、インデックスデータD5の例を示す模式図である。
インデックスデータは、圧縮データD6における、圧縮部分データD3と辞書データD4との開始位置を示す情報、つまり、圧縮データD6の所定位置(本実施の形態においては圧縮データD6の先頭位置)からのオフセット値である。
本装置1は、圧縮データD6から特定の部分データの全部または一部を読み出す復元処理を実行する際に、インデックスデータD5を参照する。
インデックスデータD5は、圧縮部分データD3ごとの圧縮データD6の先頭からのオフセット値と、辞書データD4の圧縮データD6の先頭からのオフセット値と、を含む。
圧縮部分データD3ごとの圧縮データD6の先頭からのオフセット値は、分割項目の値の組合せ、つまり、圧縮部分データD3を特定する情報と、関連付けてインデックスデータD5として記憶される。すなわち、圧縮部分データD3ごとのオフセット値は、分割項目である「商品コード」と関連付けて記憶される。同図(a)は、商品コード「234」と、オフセット値「OFFSET 1」とが関連付けて記憶されていることを示す。同様に、同図(b)は、商品コード「345」と、オフセット値「OFFSET 2」とが関連付けて記憶されていることを示す。
なお、圧縮部分データD3aは圧縮データD6の先頭に配置されているので、インデックスデータD5は、圧縮部分データD3aのオフセット値を含まない。本装置1は、圧縮部分データD3aに対応する部分データD2aを読み出す場合、圧縮データD6の先頭から圧縮部分データD3a読み出せばよいからである。
圧縮部分データD3ごとのオフセット値は、各圧縮部分データD3のデータ長に基づいて、算出される。すなわち、圧縮部分データD3bのオフセット値は、圧縮部分データD3aのデータ長に基づいて算出される。圧縮部分データD3cのオフセット値は、圧縮部分データD3aのデータ長と、圧縮部分データD3bのデータ長と、の和に基づいて、算出される。
辞書データD4の圧縮データD6の先頭からのオフセット値は、圧縮ブロックのデータ長、つまり、圧縮部分データD3aのデータ長と、圧縮部分データD3bのデータ長と、圧縮部分データD3cのデータ長と、の和に基づいて、算出される。
前述のとおり、本実施の形態において生成されるインデックスデータD5は、圧縮部分データD3bの圧縮データD6の先頭からのオフセット値と、圧縮部分データD3cの圧縮データD6の先頭からのオフセット値と、辞書データD4の圧縮データD6の先頭からのオフセット値と、を含む。
同図は、インデックスデータD5として、圧縮部分データD3bのオフセット値「OFFSET 1」と、圧縮部分データD3cのオフセット値「OFFSET 2」と、辞書データのオフセット値「OFFSET 3」と、が算出(生成)されていることを示す。
●圧縮データ
図13は、圧縮データD6のデータ構造の例を示す模式図である。
圧縮データD6は、圧縮ブロックと、辞書ブロックと、インデックスブロックと、が結合して構成される。圧縮データD6の先頭には、圧縮ブロックが配置され、次いで辞書ブロックが配置され、次いでインデックスブロックが配置される。
圧縮ブロックは、圧縮部分データD3a、D3b、D3cが結合して構成される。圧縮ブロックの先頭には圧縮部分データD3aが配置され、次いで圧縮部分データD3bが配置され、次いで圧縮部分データD3cが配置される。
辞書ブロックは、顧客ID辞書と、日付辞書と、レシート順位辞書と、が結合して構成される。辞書ブロックの先頭には顧客ID辞書が配置され、次いで日付辞書が配置され、次いでレシート順位辞書が配置される。
インデックスブロックは、圧縮部分データD3bのオフセット値と、圧縮部分データD3cのオフセット値と、辞書データD4のオフセット値とが結合して構成される。インデックスブロックの先頭には圧縮部分データD3bのオフセット値が配置され、次いで圧縮部分データD3cのオフセット値が配置され、次いで辞書データD4のオフセット値が配置される。
●データ処理方法●
次に、本方法の実施の形態について説明する。
図14は、本方法の実施の形態を示すフローチャートである。
先ず、本装置1は、部分データ生成部3を用いて、部分データ生成処理を実行する(S1)。部分データ生成処理は、被圧縮データD1から部分データD2を生成する情報処理である。
次いで、本装置1は、圧縮部分データ生成部4を用いて、圧縮部分データ生成処理を実行する(S2)。圧縮部分データ生成処理は、部分データD2から、部分データD2ごとの圧縮部分データD3を生成する情報処理である。圧縮部分データ生成処理は、圧縮部分データD3を生成する過程において、辞書データD4を生成する情報処理も含む。圧縮部分データ生成処理は、生成された圧縮部分データD3からインデックスデータD5を生成する情報処理を含む。
次いで、本装置1は、圧縮データ生成部5を用いて、圧縮データ生成処理を実行する(S3)。圧縮データ生成処理は、圧縮部分データD3と辞書データD4とインデックスデータD5とから、圧縮データD6を生成する情報処理である。
●部分データ生成処理(S1)
次に、部分データ生成処理について説明する。
図15は、部分データ生成処理の例を示すフローチャートである。
先ず、本装置1は、被圧縮データD1であるところのレシートデータ(図5参照)を読み込む(S11)。
次いで、本装置1は、レシートデータを、商品コードでソート、つまり、各レコードに含まれる商品コードの値に基づいて、データ内でのレコードの格納順(配列順)を並び替える(S12)。商品コードでのソート順は、例えば、商品コードの値の昇順である。
次いで、本装置1は、商品コードでソートされたレシートデータを、店舗番号でソートする(S13)。店舗番号でのソート順は、例えば、店舗番号の値の昇順である。
次いで、本装置1は、商品コードと店舗番号とでソートされたレシートデータを、購入数量でソートする(S14)。購入数量でのソート順は、例えば、購入数量の値の昇順である。
次いで、本装置1は、商品コードと店舗番号と購入数量とでソートされたレシートデータ(図6参照)を、分割項目である「商品コード」が共通するレコードごとに分割して複数の部分データD2(図7参照)を生成する(S15)。
●圧縮部分データ生成処理(S2)
次に、圧縮部分データ生成処理について説明する。
図16は、圧縮部分データ生成処理の例を示すフローチャートである。
先ず、本装置1は、複数の部分データD2のうち、1の部分データD2(例えば、部分データD2a)を読み込む(S21)。圧縮部分データ生成処理は、部分データごとに実行されるが、本実施の形態における圧縮部分データ生成処理は、先ずは部分データD2a、次いで部分データD2b、次いで部分データD2c、の順に実行される。
次いで、本装置1は、部分データD2を構成するレコード(購入数量の値でソート済)に含まれる購入数量の値を、部分データD2の先頭レコードから順次読み出して、購入数量の値が共通するレコードの連続数、つまり、購入数量の値が共通するレコードの繰返回数を特定する(S22)。
次いで、本装置1は、部分データD2を構成するレコードに含まれる購入金額の値を、部分データD2の先頭のレコードから順次読み出して、購入金額の値が共通するレコードの連続数、つまり、購入金額の値が共通するレコードの繰返回数を特定する(S23)。
次いで、本装置1は、部分データD2を構成するレコードに含まれる辞書項目である「顧客ID」の値ごとの辞書値を決定して、顧客ID辞書を生成する(S24)。
顧客IDの辞書値の決定は、辞書値の複数の候補値が予め記憶部2に記憶されていて、本装置1が候補値の中から辞書値として選択されていないものを辞書値として選択・決定する。
例えば、顧客IDの辞書値の候補値として、「0」「1」「2」・・・が記憶部2に記憶されている。本装置1は、図7(a)に示された部分データD2aに対する圧縮部分データ生成処理を実行する過程において、部分データD2aの1件目のレコードから顧客ID「A」を読み出す。
本装置1は、記憶部2を参照して顧客ID辞書が記憶されているか否かを判定し、顧客ID辞書が記憶されていないと判定すると、候補値「0」を顧客ID「A」の辞書値として決定して、顧客ID「A」と辞書値「0」とを関連付けた顧客ID辞書を生成して、記憶部2に記憶する。
次いで、本装置1は、部分データD2aの2件目のレコードから顧客ID「B」を読み出す。本装置1は、記憶部2を参照して顧客ID辞書が記憶されているか否かを判定して、記憶されていると判定する。本装置1は、記憶部2に記憶されている顧客ID辞書を参照して、顧客ID「B」の辞書値が記憶されているか否かを判定し、記憶されていないと判定し、候補値「1」を顧客ID「B」の辞書値として決定して、顧客ID「B」と辞書値「1」とを関連付けて顧客ID辞書に追記して、顧客ID辞書の内容を更新して記憶する。
次いで、同様に、本装置1は、部分データD2aの3件目のレコードから顧客ID「C」を読み出すと、辞書値「2」と関連付けて顧客ID辞書に記憶する。
さらに、本装置1は、図7(b)に示された部分データD2bに対する圧縮部分データ生成処理を実行する過程において、部分データD2bの1件目のレコードから顧客ID「A」を読み出す。本装置1は、記憶部2を参照して、顧客ID「A」の辞書値がすでに顧客ID辞書に記憶されていると判定すると、辞書値の決定はしない(すでに顧客ID辞書に記憶されている辞書値「0」を流用する)。
以降、同様の情報処理が繰り返されて、すべての部分データD2で共通の顧客ID辞書が完成する。
次いで、本装置1は、部分データD2を構成するレコードに含まれる辞書項目である「日付」の値ごとの辞書値を決定して、日付辞書を生成する(S25)。
日付の辞書値の決定方法は、前述の顧客IDの辞書値の決定方法と同様に、予め記憶部2に記憶されている辞書値の複数の候補値の中から初出の日付の値に対する辞書値が選択されて、辞書値として決定される。決定された辞書値は、辞書項目の値と関連付けて記憶部2に日付辞書として記憶される。
次いで、本装置1は、部分データD2を構成するレコードに含まれる顧客IDごとのレシート番号の順位(レシート順位)を特定し、特定されたレシート順位(1番目、2番目、3番目・・・)ごとの辞書値を決定して、レシート順位辞書を生成する(S26)。
レシート順位ごとの辞書値の決定方法は、前述の顧客IDごとの辞書値の決定方法と同様に、予め記憶部2に記憶されている辞書値の複数の候補値の中から初出のレシート順位に対する辞書値が選択されて、辞書値として決定される。決定された辞書値は、辞書項目の値(レシート順位)と関連付けて記憶部2にレシート順位辞書として記憶される。
例えば、レシート順位の辞書値の候補値として、「0」「1」「2」・・・が記憶部2に記憶されている。本装置1は、図7(a)に示された部分データD2aに対する圧縮部分データ生成処理を実行する過程において、部分データD2aの1件目のレコードから顧客ID「A」を読み出す。
次いで、本装置1は、読み出されたレコードが部分データD2aにおける顧客ID「A」の何件目のレコードであるか、つまり、レコード順位を特定する。この特定は、例えば、本装置1は、部分データD2aの先頭から順にレコードを読み出すごとに、読み出されたレコードに含まれる顧客IDの値をカウントしてレコード順位(1番目、2番目、3番目・・・)を判定する。例えば、本装置1は、部分データD2aの1件目のレコードを読み出したとき、顧客ID「A」の1件目のレコードである、つまり、レコード順位「1番目」と判定する。
次いで、本装置1は、記憶部2を参照してレシート順位辞書が記憶されているか否かを判定し、レシート順位辞書が記憶されていないと判定すると、候補値「0」をレシート順位「1番目」の辞書値として決定して、レシート順位「1番目」と辞書値「0」とを関連付けたレシート順位辞書を生成して、記憶部2に記憶する。
次いで、本装置1は、部分データD2aの2件目のレコードから顧客ID「B」を読み出す。本装置1は、部分データD2aにおける顧客ID「B」のレコード順位「1番目」を特定する。本装置1は、記憶部2を参照してレコード順位辞書が記憶されているか否かを判定し、記憶されていると判定する。本装置1は、記憶部2に記憶されているレシート順位辞書を参照して、レコード順位「1番目」の辞書値が記憶されているか否かを判定し、記憶されているので、辞書値の決定はしない(すでにレコード順位辞書に記憶されている辞書値「0」を流用する)。
次いで、本装置1は、部分データD2aの3件目のレコードから顧客ID「C」を読み出して、前述の2件目のレコードと同様、レコード順位が「1番目」であるので、前述のとおり、辞書値の決定はしない。
以降、同様の情報処理が繰り返されて、すべての部分データD2で共通のレシート順位辞書が完成する。
以上の処理S21からS28が実行されることで、図8(a)に示された圧縮部分データD3aを構成するデータ項目のすべての値が決定されて、圧縮部分データD3aが生成される(S27)。
本装置1は、部分データ生成処理(S2)により生成された部分データD2のすべて(部分データD2a、D2b、D2c)について、処理S21から処理S26を実行する(S28)。その結果、本装置1は、図8,9,10に示された圧縮部分データD3a、D3b、D3cと、図11に示された辞書データD4と、を生成して、記憶部2に記憶する。また、本装置1は、圧縮部分データD3a,D3b,D3cの各データのデータ長を特定して、これらのデータ長に基づいてインデックスデータD5、つまり、圧縮部分データD3b,D3cそれぞれのオフセット値と辞書ブロックのオフセット値と、を算出(特定)して記憶部2に記憶する。
なお、顧客ID辞書の生成処理(S24)と、日付辞書の生成処理(S25)と、レシート順位辞書の生成処理(S26)とは、同時に実行されてもよい。また、これらの辞書の生成処理(S24からS26)、つまり、各辞書の辞書値を決定する処理は、購入数量とその繰返回数の特定する処理(S22)や、購入金額とその繰返回数の特定する処理(S23)と、同時に実行されてもよい。すなわち、例えば、本装置1は、部分データD2の先頭から順にレコードを読み出すごとに、これらの処理(S22からS26)の全部または一部を同時に実行してもよい。
●圧縮データ生成処理(S3)
次に、圧縮データ生成処理について説明する。
図17は、圧縮データ生成処理の例を示すフローチャートである。
先ず、本装置1は、圧縮部分データ生成処理(S2)により生成されて記憶部2に記憶されている圧縮部分データD3を読み込んで、圧縮ブロックを生成する(S31)。
次いで、本装置1は、圧縮部分データ生成処理(S2)により生成されて記憶部2に記憶されている辞書データD4を読み込んで、辞書ブロックを生成する(S32)。
次いで、本装置1は、圧縮部分データ生成処理(S2)により生成されて記憶部2に記憶されているインデックスデータD5を読み込んで、インデックスブロックを生成する(S33)。
次いで、本装置1は、圧縮ブロックと、辞書ブロックと、インデックスブロックと、を結合して、図13に示された圧縮データD6を生成して記憶部2に記憶する(S34)。
図18は、本装置1による圧縮率の実施例を示す表である。
同図は、同一の被圧縮データを圧縮する際に、部分データの生成の際の被圧縮データのソート処理に用いられる項目の順序の相違による、生成された圧縮データの容量の相違、つまり、圧縮率の相違を示す。この実施例における被圧縮データの容量は、7GB(ギガバイト)である。
同図は、「顧客ID」「店舗番号」「購入数量」の順でソート処理して圧縮した場合、圧縮データのデータ容量は、1027MB(メガバイト)であったことを示す。
同図は、「顧客ID」「店舗番号」「商品コード」「購入数量」の順でソート処理して圧縮した場合、圧縮データのデータ容量は、1083MBであったことを示す。
一方、同図は、前述の本実施の形態の場合、つまり、「商品コード」「店舗番号」「購入数量」の順でソート処理して圧縮した場合、圧縮データのデータ容量は、731MBであったことを示す。
なお、同図は、参考情報として、同一の被圧縮データをgunzip方式で圧縮した場合、圧縮データのデータ容量は、1100MBであったことを示す。
このように、部分データを生成する際のソート処理に用いられる項目や、ソート処理が実行される項目の順序により、圧縮率は異なる。また、被圧縮データを構成する項目のうち、分割項目と圧縮項目との選択により、圧縮率は異なる。したがって、被圧縮データを構成するレコードに含まれる各項目の値の特性(特徴)に鑑みて、ソート処理で用いられる項目やソート処理が実行される項目の順序、あるいは、分割項目や圧縮項目が選択されることで、圧縮率は大きくなる(圧縮データの容量がより小さくなる)。すなわち、項目(圧縮項目)の値が共通するレコードの数、つまり、項目(圧縮項目)の値の繰返回数が多くなるように、被圧縮データを複数の部分データに分割する(分割項目を設定する)ことで、圧縮率は大きくなる。
本実施の形態における被圧縮データD1は、小売店の販売データ(レシートデータ)であった。出願人の調査によれば、店舗に来店した客が商品ごとに購入する商品点数(販売数量)は、1点が約72.7%、2点が約17.3%、3点が約4.3%、4点以上が約5.7%である。すなわち、被圧縮データD1を構成するレコードに含まれる各項目のうち、各レコードで同じ値を取り得る可能性の最も高い項目は「販売数量」である。また、同一商品の同一店舗での販売価格(購入金額)は、通常、値引販売を除いて、同一である。よって、販売データに含まれるレコードを、「商品コード」「店舗番号」「購入数量」の順序でソート処理した後、「商品コード」を分割項目として被圧縮データD1を複数の部分データD2に分割した上で、「販売数量」を圧縮項目として各部分データD2から圧縮部分データD3を生成することで、圧縮効率(データの処理効率)が高まる、つまり、圧縮データD6の小容量化が実現される。
また、被圧縮データD1を構成するレコードに含まれる複数の項目のうち、分割項目と圧縮項目のいずれでもない項目で、圧縮データD6から復元が必要となる項目の値は、データ長の短い(小さい)辞書値に置換されて圧縮データD6に格納されるため、圧縮データD6の圧縮効率が高まる。
●圧縮データの復元処理(圧縮データから部分データの読出し)
本装置1は、圧縮データD6から、部分データD2a,D2b,D2cそれぞれを読み出すことができる。
以下、部分データD2bを読み出す、つまり、商品コード「234」の商品の販売データを読み出す場合を例に説明する。
本装置1は、先ず、記憶部2に記憶されている圧縮データD6を読み出す。
次いで、本装置1は、圧縮データD6のインデックスブロックを参照して、圧縮部分データD3bのオフセット値「OFFSET 1」と、辞書ブロックのオフセット値「OFFSET 3」を読み出す。本装置1は、商品コード「234」と関連付けてインデックスブロック内に記憶されている、圧縮部分データD3bのオフセット値「OFFSET 1」を読み出す。本装置1は、予め決められた所定の情報(辞書ブロックを特定する情報)と関連付けてインデックスブロック内に記憶されている、辞書ブロックのオフセット値「OFFSET 3」を読み出す。
次いで、本装置1は、圧縮データD6の先頭から「OFFSET 1」の位置に格納されている圧縮部分データD3bを読み出し、圧縮データD6の先頭から「OFFSET 3」の位置に格納されている辞書データD4を読み出す。
次いで、本装置1は、辞書データD4を参照して、圧縮部分データD3bに含まれる辞書値に対応する辞書項目の値を特定し、辞書値を辞書項目の値に置換して、圧縮部分データD3bから部分データD2bを生成する。
このように、本装置1は、圧縮データD6から部分データD2bを復元して、部分データD2bを読み出す。
ただし、本装置1が圧縮データD6から復元して生成される部分データD2bは、被圧縮データD1に含まれていた項目「レシート番号」の値を含んでいない。つまり、本装置1は、圧縮データD6から部分データD2bの一部のデータのみを復元(生成)する。これは、図7から図10に示されたように、圧縮部分データ生成処理において生成される圧縮部分データD3が、部分データD2に含まれる「レシート番号」の値に対応する情報(値そのもの、または、その辞書値)を含んでいないためである。つまり、本装置1は、部分データD2から「レシート番号」の値を欠落させて圧縮部分データD3を生成したためである。このように、圧縮データから復元された部分データが含まなくてよい項目の値は、圧縮部分データ生成処理において欠落させることで、圧縮データD6の小容量化が実現される。
なお、本装置1は、圧縮データD6から、部分データD2a,D2b,D2cそれぞれを、同時に読み出すこともできる。すなわち、本装置1は、例えば、圧縮部分データD3bのオフセット値と、圧縮部分データD3cのオフセット値とをインデックスブロックから読み出し、圧縮ブロックの先頭に記憶されている圧縮部分データD3aと共に圧縮部分データD3b,D3cを読み出して、各圧縮部分データの復元処理を同時に実行する。その結果、本装置1は、部分データD2a,D2b,D2cの一部のデータ項目の値を復元して、部分データD2a,D2b,D2cを読み出す。
●まとめ●
以上説明した実施の形態によれば、被圧縮データD1の圧縮処理において、本装置1は、被圧縮データD1を複数の部分データD2に分割した上で、各部分データD2を圧縮して圧縮部分データD3を生成する。本装置1は、複数の圧縮部分データD3を結合して圧縮データD6を生成する。本装置1は、被圧縮データD1に含まれる分割項目(商品コード)に基づいて、部分データD2を生成する。本装置1は、部分データD2に含まれる圧縮項目(購入数量)の値が同一のレコードの繰返回数に基づいて、部分データD2の圧縮を行う。本装置1は、圧縮項目の値が同一のレコード同士で、値が共通する項目(購入金額)の繰返回数に基づいて、部分データD2の圧縮を行う。よって、被圧縮データD1を構成するレコードに含まれる各項目の値の特性(特徴)に鑑みて、複数の項目の中から分割項目や圧縮項目が選択されることで、本装置1による圧縮処理の圧縮効率は、高まる。
また、本装置1は、被圧縮データD1を構成するレコードに含まれる項目のうち、分割項目や圧縮項目ではない項目の値を、同値のデータ長よりも短い(小さい)データ長の辞書値に変換して圧縮データD6を生成する。そのため、本装置1による圧縮処理の圧縮効率は、さらに高まる。
一方、圧縮データD6の復元処理において、本装置1は、インデックスデータD5を参照することで、圧縮データD6に含まれる複数の部分データD2の全部または一部を選択的に読み出すことができる。すなわち、所望の部分データD2のみを圧縮データD6から復元することができる本装置1による復元処理の復元効率は、高い。
また、本装置1は、圧縮データD6から複数の部分データD2を同時に復元することもでき、本装置1による復元処理の復元効率は、高い。
以下、これまで説明した本装置と本プログラムと本方法の特徴を、まとめて記載しておく。
(特徴1)
複数のレコードを含む取引データを処理する装置であって、
前記レコードのそれぞれは、少なくとも1つの項目の値を含み、
前記項目は、取引数量を含み、
前記取引データが記憶される記憶部(例えば、記憶部2)と、
前記記憶部に記憶されている前記取引データに含まれる前記取引数量の値に基づいて、前記取引データに対応する圧縮データを生成する圧縮データ生成部(例えば、圧縮データ生成部5)と、
を有してなり、
前記取引数量の値は、1以外の自然数が含まれる、
ことを特徴とするデータ処理装置。
(特徴2)
前記取引数量の値は、6の倍数が含まれる、
特徴1記載のデータ処理装置。
(特徴3)
前記圧縮データ生成部は、前記取引データに含まれる前記レコードのうち前記取引数量の値が同じ前記レコードの数に基づいて、前記圧縮データを生成する、
特徴1記載のデータ処理装置。
(特徴4)
前記圧縮データ生成部は、
前記取引データに含まれる前記レコードの前記取引データ内での格納の順序を、前記取引数量の値に基づいて、並べ替えて、
前記取引数量の値が同じ前記レコードの前記取引データ内での繰返回数に基づいて、前記圧縮データを生成する、
特徴3記載のデータ処理装置。
(特徴5)
前記複数の項目は、辞書項目を含み、
前記圧縮データ生成部は、
前記取引データに含まれる前記辞書項目の値ごとに、対応する辞書値を決定し、
前記取引データに含まれる前記辞書項目の値を、対応する前記辞書値に置換して、前記圧縮データを生成し、
前記辞書値のデータ長は、対応する前記辞書項目の値のデータ長より短い、
特徴4記載のデータ処理装置。
(特徴6)
前記項目は、商品コードを含み、
前記記憶部に記憶されている前記取引データに含まれる前記商品コードの値に基づいて、前記取引データを複数の部分データに分割する部分データ生成部(例えば、部分データ生成部3)と、
前記部分データに含まれる前記取引数量の値に基づいて、前記部分データごとの圧縮部分データを生成する圧縮部分データ生成部(例えば、圧縮部分データ生成部4)と、
を有してなり、
前記圧縮データ生成部は、前記圧縮部分データに基づいて、前記圧縮データを生成する、
特徴1記載のデータ処理装置。
(特徴7)
前記圧縮部分データ生成部は、前記部分データごとに、前記部分データに含まれる前記レコードのうち前記取引数量の値が同じ前記レコードの数に基づいて、前記圧縮部分データを生成する、
特徴6記載のデータ処理装置。
(特徴8)
前記部分データ生成部は、前記取引データに含まれる前記レコードの前記取引データ内での格納の順序を、前記取引数量の値に基づいて、並び替えて、
前記圧縮部分データ生成部は、前記取引数量の値が同じ前記レコードの前記取引データ内での繰返回数に基づいて、前記圧縮部分データを生成する、
特徴7記載のデータ処理装置。
(特徴9)
コンピュータを、特徴1記載のデータ処理装置として機能させる、
ことを特徴とするデータ処理プログラム。
(特徴10)
複数のレコードを含む取引データが記憶される記憶部(例えば、記憶部2)を備えた装置により実行される方法であって、
前記レコードのそれぞれは、少なくとも1つの項目の値を含み、
前記項目は、取引数量を含み、
前記装置は、
前記記憶部に記憶されている前記取引データに含まれる前記取引数量の値に基づいて、前記取引データに対応する圧縮データを生成する圧縮データ生成ステップ、
を有してなり、
前記取引数量の値は、1以外の自然数が含まれる、
ことを特徴とするデータ処理方法。
(特徴11)
複数のレコードを含む被圧縮データを処理する装置であって、
前記レコードのそれぞれは、複数の項目ごとの値を含み、
複数の前記項目は、分割項目と圧縮項目とを含み、
前記被圧縮データが記憶される記憶部(例えば、記憶部2)と、
前記記憶部に記憶されている前記被圧縮データに含まれる前記分割項目の値に基づいて、前記被圧縮データを複数の部分データに分割する部分データ生成部(例えば、部分データ生成部3)と、
前記部分データに含まれる前記圧縮項目の値に基づいて、前記部分データごとの圧縮部分データを生成する圧縮部分データ生成部(例えば、圧縮部分データ生成部4)と、
前記圧縮部分データに基づいて、前記被圧縮データに対応する圧縮データを生成する圧縮データ生成部(例えば、圧縮データ生成部5)と、
を有してなる、
ことを特徴とするデータ処理装置。
(特徴12)
前記部分データ生成部は、前記被圧縮データに含まれる複数の前記レコード単位で前記被圧縮データを分割する、
特徴11記載のデータ処理装置。
(特徴13)
前記部分データは、前記被圧縮データに含まれる複数の前記レコードのうち、1または複数の前記レコードを含む、
特徴12記載のデータ処理装置。
(特徴14)
前記圧縮部分データ生成部は、前記部分データごとに、前記部分データに含まれる前記レコードのうち前記圧縮項目の値が同じ前記レコードの数に基づいて、前記圧縮部分データを生成する、
特徴11記載のデータ処理装置。
(特徴15)
前記部分データ生成部は、前記被圧縮データに含まれる前記レコードの前記被圧縮データ内での格納の順序を、前記圧縮項目の値に基づいて、並び替えて、
前記圧縮部分データ生成部は、前記圧縮項目の値が同じ前記レコードの前記被圧縮データ内での繰返回数に基づいて、前記圧縮部分データを生成する、
特徴14記載のデータ処理装置。
(特徴16)
複数の前記項目は、辞書項目を含み、
前記圧縮部分データ生成部は、
前記部分データに含まれる前記辞書項目の値ごとに、対応する辞書値を決定し、
前記部分データに含まれる前記辞書項目の値を、対応する前記辞書値に置換して、前記圧縮部分データを生成し、
前記辞書値のデータ長は、対応する前記辞書項目の値のデータ長より短い、
特徴11記載のデータ処理装置。
(特徴17)
前記記憶部は、
前記辞書項目の値と、
前記辞書項目の値に対応する前記辞書値と、
が関連付けられた辞書データを記憶する、
特徴16記載のデータ処理装置。
(特徴18)
前記圧縮データ生成部は、複数の前記圧縮部分データごとの前記圧縮データの所定位置からのオフセット値を算出し、
前記圧縮データは、複数の前記圧縮部分データごとの前記オフセット値を含む、
特徴17記載のデータ処理装置。
(特徴19)
前記圧縮データは、
前記部分データごとの前記圧縮部分データと、
前記辞書値と、
を含む、
特徴18記載のデータ処理装置。
(特徴20)
前記記憶部は、
前記部分データに含まれる前記分割項目の値と、
前記部分データに対応する前記圧縮部分データのオフセット値と、
が関連付けられたインデックスデータを記憶する、
特徴18記載のデータ処理装置。
(特徴21)
前記被圧縮データは、複数の商品を顧客に販売する店舗の販売データであって、
前記レコードは、前記顧客が購入した商品を特定する商品コードと、前記顧客が購入した前記商品の購入数量と、を含み、
前記分割項目は、前記商品コードであり、
前記圧縮項目は、前記購入数量である、
特徴11記載のデータ処理装置。
(特徴22)
前記購入数量の値は、1以外の自然数が含まれる、
特徴21記載のデータ処理装置。
(特徴23)
前記購入数量の値は、6の倍数が含まれる、
特徴21記載のデータ処理装置。
(特徴24)
コンピュータを、特徴11記載のデータ処理装置として機能させる、
ことを特徴とするデータ処理プログラム。
(特徴25)
複数のレコードを含む被圧縮データが記憶される記憶部(例えば、記憶部2)を備えた装置により実行される方法であって、
前記レコードのそれぞれは、複数の項目ごとの値を含み、
複数の前記項目は、分割項目と圧縮項目とを含み、
前記装置は、
前記記憶部に記憶されている前記被圧縮データに含まれる前記分割項目の値に基づいて、前記被圧縮データを複数の部分データに分割する部分データ生成ステップと、
前記部分データに含まれる前記圧縮項目の値に基づいて、前記部分データごとの圧縮部分データを生成する圧縮部分データ生成ステップと、
前記圧縮部分データに基づいて、前記被圧縮データに対応する圧縮データを生成する圧縮データ生成ステップと、
を有してなる、
ことを特徴とするデータ処理方法。
1 データ処理装置
2 記憶部
3 部分データ生成部
4 圧縮部分データ生成部
5 圧縮データ生成部
D1 被圧縮データ(レシートデータ)
D2 部分データ
D3 圧縮部分データ
D4 辞書データ
D5 インデックスデータ
D6 圧縮データ


Claims (25)

  1. 複数のレコードを含む取引データを処理する装置であって、
    前記レコードのそれぞれは、少なくとも1つの項目の値を含み、
    前記項目は、取引数量を含み、
    前記取引データが記憶される記憶部と、
    前記記憶部に記憶されている前記取引データに含まれる前記取引数量の値に基づいて、前記取引データに対応する圧縮データを生成する圧縮データ生成部と、
    を有してなり、
    前記取引数量の値は、1以外の自然数が含まれる、
    ことを特徴とするデータ処理装置。
  2. 前記取引数量の値は、6の倍数が含まれる、
    請求項1記載のデータ処理装置。
  3. 前記圧縮データ生成部は、前記取引データに含まれる前記レコードのうち前記取引数量の値が同じ前記レコードの数に基づいて、前記圧縮データを生成する、
    請求項1記載のデータ処理装置。
  4. 前記圧縮データ生成部は、
    前記取引データに含まれる前記レコードの前記取引データ内での格納の順序を、前記取引数量の値に基づいて、並べ替えて、
    前記取引数量の値が同じ前記レコードの前記取引データ内での繰返回数に基づいて、前記圧縮データを生成する、
    請求項3記載のデータ処理装置。
  5. 前記複数の項目は、辞書項目を含み、
    前記圧縮データ生成部は、
    前記取引データに含まれる前記辞書項目の値ごとに、対応する辞書値を決定し、
    前記取引データに含まれる前記辞書項目の値を、対応する前記辞書値に置換して、前記圧縮データを生成し、
    前記辞書値のデータ長は、対応する前記辞書項目の値のデータ長より短い、
    請求項4記載のデータ処理装置。
  6. 前記項目は、商品コードを含み、
    前記記憶部に記憶されている前記取引データに含まれる前記商品コードの値に基づいて、前記取引データを複数の部分データに分割する部分データ生成部と、
    前記部分データに含まれる前記取引数量の値に基づいて、前記部分データごとの圧縮部分データを生成する圧縮部分データ生成部と、
    を有してなり、
    前記圧縮データ生成部は、前記圧縮部分データに基づいて、前記圧縮データを生成する、
    請求項1記載のデータ処理装置。
  7. 前記圧縮部分データ生成部は、前記部分データごとに、前記部分データに含まれる前記レコードのうち前記取引数量の値が同じ前記レコードの数に基づいて、前記圧縮部分データを生成する、
    請求項6記載のデータ処理装置。
  8. 前記部分データ生成部は、前記取引データに含まれる前記レコードの前記取引データ内での格納の順序を、前記取引数量の値に基づいて、並び替えて、
    前記圧縮部分データ生成部は、前記取引数量の値が同じ前記レコードの前記取引データ内での繰返回数に基づいて、前記圧縮部分データを生成する、
    請求項7記載のデータ処理装置。
  9. コンピュータを、請求項1記載のデータ処理装置として機能させる、
    ことを特徴とするデータ処理プログラム。
  10. 複数のレコードを含む取引データが記憶される記憶部を備えた装置により実行される方法であって、
    前記レコードのそれぞれは、少なくとも1つの項目の値を含み、
    前記項目は、取引数量を含み、
    前記装置は、
    前記記憶部に記憶されている前記取引データに含まれる前記取引数量の値に基づいて、前記取引データに対応する圧縮データを生成する圧縮データ生成ステップ、
    を有してなり、
    前記取引数量の値は、1以外の自然数が含まれる、
    ことを特徴とするデータ処理方法。
  11. 複数のレコードを含む被圧縮データを処理する装置であって、
    前記レコードのそれぞれは、複数の項目ごとの値を含み、
    複数の前記項目は、分割項目と圧縮項目とを含み、
    前記被圧縮データが記憶される記憶部と、
    前記記憶部に記憶されている前記被圧縮データに含まれる前記分割項目の値に基づいて、前記被圧縮データを複数の部分データに分割する部分データ生成部と、
    前記部分データに含まれる前記圧縮項目の値に基づいて、前記部分データごとの圧縮部分データを生成する圧縮部分データ生成部と、
    前記圧縮部分データに基づいて、前記被圧縮データに対応する圧縮データを生成する圧縮データ生成部と、
    を有してなる、
    ことを特徴とするデータ処理装置。
  12. 前記部分データ生成部は、前記被圧縮データに含まれる複数の前記レコード単位で前記被圧縮データを分割する、
    請求項11記載のデータ処理装置。
  13. 前記部分データは、前記被圧縮データに含まれる複数の前記レコードのうち、1または複数の前記レコードを含む、
    請求項12記載のデータ処理装置。
  14. 前記圧縮部分データ生成部は、前記部分データごとに、前記部分データに含まれる前記レコードのうち前記圧縮項目の値が同じ前記レコードの数に基づいて、前記圧縮部分データを生成する、
    請求項11記載のデータ処理装置。
  15. 前記部分データ生成部は、前記被圧縮データに含まれる前記レコードの前記被圧縮データ内での格納の順序を、前記圧縮項目の値に基づいて、並び替えて、
    前記圧縮部分データ生成部は、前記圧縮項目の値が同じ前記レコードの前記被圧縮データ内での繰返回数に基づいて、前記圧縮部分データを生成する、
    請求項14記載のデータ処理装置。
  16. 複数の前記項目は、辞書項目を含み、
    前記圧縮部分データ生成部は、
    前記部分データに含まれる前記辞書項目の値ごとに、対応する辞書値を決定し、
    前記部分データに含まれる前記辞書項目の値を、対応する前記辞書値に置換して、前記圧縮部分データを生成し、
    前記辞書値のデータ長は、対応する前記辞書項目の値のデータ長より短い、
    請求項11記載のデータ処理装置。
  17. 前記記憶部は、
    前記辞書項目の値と、
    前記辞書項目の値に対応する前記辞書値と、
    が関連付けられた辞書データを記憶する、
    請求項16記載のデータ処理装置。
  18. 前記圧縮データ生成部は、複数の前記圧縮部分データごとの前記圧縮データの所定位置からのオフセット値を算出し、
    前記圧縮データは、複数の前記圧縮部分データごとの前記オフセット値を含む、
    請求項17記載のデータ処理装置。
  19. 前記圧縮データは、
    前記部分データごとの前記圧縮部分データと、
    前記辞書値と、
    を含む、
    請求項18記載のデータ処理装置。
  20. 前記記憶部は、
    前記部分データに含まれる前記分割項目の値と、
    前記部分データに対応する前記圧縮部分データのオフセット値と、
    が関連付けられたインデックスデータを記憶する、
    請求項18記載のデータ処理装置。
  21. 前記被圧縮データは、複数の商品を顧客に販売する店舗の販売データであって、
    前記レコードは、前記顧客が購入した商品を特定する商品コードと、前記顧客が購入した前記商品の購入数量と、を含み、
    前記分割項目は、前記商品コードであり、
    前記圧縮項目は、前記購入数量である、
    請求項11記載のデータ処理装置。
  22. 前記購入数量の値は、1以外の自然数が含まれる、
    請求項21記載のデータ処理装置。
  23. 前記購入数量の値は、6の倍数が含まれる、
    請求項21記載のデータ処理装置。
  24. コンピュータを、請求項11記載のデータ処理装置として機能させる、
    ことを特徴とするデータ処理プログラム。
  25. 複数のレコードを含む被圧縮データが記憶される記憶部を備えた装置により実行される方法であって、
    前記レコードのそれぞれは、複数の項目ごとの値を含み、
    複数の前記項目は、分割項目と圧縮項目とを含み、
    前記装置は、
    前記記憶部に記憶されている前記被圧縮データに含まれる前記分割項目の値に基づいて、前記被圧縮データを複数の部分データに分割する部分データ生成ステップと、
    前記部分データに含まれる前記圧縮項目の値に基づいて、前記部分データごとの圧縮部分データを生成する圧縮部分データ生成ステップと、
    前記圧縮部分データに基づいて、前記被圧縮データに対応する圧縮データを生成する圧縮データ生成ステップと、
    を有してなる、
    ことを特徴とするデータ処理方法。


JP2021525282A 2019-11-27 2019-11-27 データ処理装置とデータ処理プログラムとデータ処理方法 Active JP6956299B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/046368 WO2021106104A1 (ja) 2019-11-27 2019-11-27 データ処理装置とデータ処理プログラムとデータ処理方法

Publications (2)

Publication Number Publication Date
JP6956299B1 true JP6956299B1 (ja) 2021-11-02
JPWO2021106104A1 JPWO2021106104A1 (ja) 2021-12-02

Family

ID=76129401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021525282A Active JP6956299B1 (ja) 2019-11-27 2019-11-27 データ処理装置とデータ処理プログラムとデータ処理方法

Country Status (3)

Country Link
US (1) US20220405250A1 (ja)
JP (1) JP6956299B1 (ja)
WO (1) WO2021106104A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009237934A (ja) * 2008-03-27 2009-10-15 Nec Corp ファイル変換装置、ファイル変換方法及びプログラム
JP2011114546A (ja) * 2009-11-26 2011-06-09 Fujitsu Ltd データ圧縮装置、データ伸長装置、データ圧縮プログラム、及びデータ伸長プログラム
JP2013522715A (ja) * 2010-03-10 2013-06-13 アビニシオ テクノロジー エルエルシー 個別にアクセス可能なデータ単位の記憶の管理
JP2015191585A (ja) * 2014-03-28 2015-11-02 富士通株式会社 データ加工装置、情報処理装置、方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009237934A (ja) * 2008-03-27 2009-10-15 Nec Corp ファイル変換装置、ファイル変換方法及びプログラム
JP2011114546A (ja) * 2009-11-26 2011-06-09 Fujitsu Ltd データ圧縮装置、データ伸長装置、データ圧縮プログラム、及びデータ伸長プログラム
JP2013522715A (ja) * 2010-03-10 2013-06-13 アビニシオ テクノロジー エルエルシー 個別にアクセス可能なデータ単位の記憶の管理
JP2015191585A (ja) * 2014-03-28 2015-11-02 富士通株式会社 データ加工装置、情報処理装置、方法、およびプログラム

Also Published As

Publication number Publication date
JPWO2021106104A1 (ja) 2021-12-02
WO2021106104A1 (ja) 2021-06-03
US20220405250A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
JP3373716B2 (ja) 大規模データベース内の順次パターンをマイニングするためのシステムおよび方法
JP7559215B2 (ja) 動的属性モデル化による次のバスケット推薦のためのシステムと方法
US10860634B2 (en) Artificial intelligence system and method for generating a hierarchical data structure
JP6744882B2 (ja) 行動パターン探索システム、および行動パターン探索方法
CN109741082A (zh) 一种基于时间序列分解的季节性商品需求预测方法
US11238464B2 (en) Systems and methods for determining offer eligibtility using a predicate logic tree against sets of input data
US20170221153A1 (en) Systems and Methods for Use in Compressing Data Structures
US7424481B2 (en) Data management and processing system for large enterprise model and method therefor
US20220414579A1 (en) Salesperson evaluation apparatus, salesperson evaluation method, and salesperson evaluation program
JP5455978B2 (ja) パターン抽出装置及び方法
WO2018061249A1 (ja) マーケティング支援システム
JP2020201819A (ja) ビジネスマッチング支援装置、及びビジネスマッチング支援方法
JP6956299B1 (ja) データ処理装置とデータ処理プログラムとデータ処理方法
Mirajkar et al. Data mining based store layout architecture for supermarket
JP2002082967A (ja) データ抽出方法および情報処理装置および記録媒体
JP5993717B2 (ja) 広告提供システム
JP6806885B2 (ja) 物流支援システム及び物流支援方法
JP2004110327A (ja) 時系列相関抽出装置
JP7253344B2 (ja) 情報処理装置、情報処理方法およびプログラム
JPH05114087A (ja) 異価格バンドルの安値優先方式
JP2005092721A (ja) マーケット情報分析装置、マーケット情報分析システム、マーケット情報分析方法及びプログラム
JP2007122415A (ja) 店舗支援システム
CN113516504B (zh) 一种商品推荐方法、装置、设备及存储介质
JP2020038535A (ja) 特徴抽出装置および特徴抽出方法
WO2002057973A1 (fr) Systeme et procede de promotion de la vente de marchandises

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210510

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211004

R150 Certificate of patent or registration of utility model

Ref document number: 6956299

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250