JP6967870B2 - データベース連携システム、データベース連携方法、およびプログラム - Google Patents

データベース連携システム、データベース連携方法、およびプログラム Download PDF

Info

Publication number
JP6967870B2
JP6967870B2 JP2017079545A JP2017079545A JP6967870B2 JP 6967870 B2 JP6967870 B2 JP 6967870B2 JP 2017079545 A JP2017079545 A JP 2017079545A JP 2017079545 A JP2017079545 A JP 2017079545A JP 6967870 B2 JP6967870 B2 JP 6967870B2
Authority
JP
Japan
Prior art keywords
database
server
identification information
data
processing unit
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
JP2017079545A
Other languages
English (en)
Other versions
JP2018180933A (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.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2017079545A priority Critical patent/JP6967870B2/ja
Publication of JP2018180933A publication Critical patent/JP2018180933A/ja
Application granted granted Critical
Publication of JP6967870B2 publication Critical patent/JP6967870B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データベース連携システム、データベース連携方法、およびプログラムに関する。
従来、投稿文に対して設定された画像の情報をバリューとしてキーバリュー型のデータベースに記憶した場合に、画像の情報の集計結果などを容易に検索することを可能としたデータベース管理装置の発明が開示されている(特許文献1参照)。
特開2012−146058号公報
しかしながら、キーバリュー型のデータベースを使用する場合、膨大な数のデータを記憶させようとした場合に所要時間が長くなり過ぎ、例えば一日一回の更新に間に合わないような場面が生じ得る。
本発明は、このような事情を考慮してなされたものであり、データの更新速度を向上させることができるデータベース連携システム、データベース連携方法、およびプログラムを提供することを目的の一つとする。
本発明の一態様は、識別情報に対応付けられたデータを、前記識別情報順に論理的にソートして第1データベースに格納するように、前記第1データベースを含む第1データベースシステムに指示する最適化処理部と、前記第1データベースから、前記最適化処理部の指示によって論理的にソートされたデータを読み出して、第2データベースに格納するように、前記第2データベースを含む第2データベースシステムに指示する並列格納処理部と、を備え、前記第2データベースシステムは、複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースシステムであり、各サーバと識別情報との対応関係を示すリストを参照し、前記並列格納処理部により指示されたデータの格納先のサーバを決定する、データベース連携システムである。
本発明の一態様によれば、データの更新速度を向上させることができるデータベース連携システム、データベース連携方法、およびプログラムを提供することができる。
データベース連携システム100の使用環境の一例を示す図である。 第1データベースシステム200の機能について説明するための図である。 第2データベースシステム300の機能について説明するための図である。 データベース連携システム100によって実行される処理の流れの一例を示すフローチャートである。
以下、図面を参照し、本発明のデータベース連携システム、データベース連携方法、およびプログラムの実施形態について説明する。データベース連携システムは、一以上のプロセッサによって実現される。データベース連携システムは、各種ネットワークサービスにおけるユーザID(識別情報)に対して種々のデータが対応付けられたデータの組(以下、ユーザデータと称する)を第1データベースに蓄積し、定期的に第2データベースにコピーするシステムである。第2データベースは、第1データベースよりも柔軟な増設が可能なものであり、膨大なデータを格納するのに適していると共に、ユーザデータの利用者にとって参照が容易な形式でデータを保持可能なものである。
図1は、データベース連携システム100の使用環境の一例を示す図である。この環境において、一以上の端末装置10と、サービスサーバ20と、データベース連携システム100と、第1データベースシステム200と、第2データベースシステム300とがネットワークNWに接続されている。ネットワークNWは、インターネットやプロバイダ、専用回線、WAN(Wide Area Network)、LAN(Local Area Network)などを含む。なお、図1に示す全ての構成要素の組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
端末装置10は、スマートフォンやタブレット端末、パーソナルコンピュータなどである。サービスサーバ20は、ウェブサーバやアプリサーバなど、各種のネットワークサービスを提供するサーバである。端末装置10では、ブラウザやアプリケーションプログラムなどが起動することでサービスサーバ20と通信し、各種のサービスを受けることができる。
このサービスにおいて、ユーザIDが入力されることで、メンバー限定のサービスが提供される。ユーザIDの登録の際には、ユーザの属性情報(年齢、性別、職業、趣味など)が登録される場合がある。また、ユーザがユーザIDを入力してサービスを受ける際に、サービス提供ログがサービスサーバ20によって収集される。データベース連携システム100は、ユーザIDに対応付けられた属性情報やサービス提供ログを、ユーザデータとして一次的に第1データベースシステム200に格納させ、次いで第2データベースシステム300にコピーする。また、特定のCookieに対応付けられた情報も同様に、ユーザデータとして扱われてよい。すなわち、特定のCookie自体がユーザIDとして扱われてよい。
データベース連携システム100は、例えば、最適化処理部110と、並列格納処理部120とを備える。これらの機能部は、例えば、CPU(Central Processing Unit)などのプロセッサがプログラムを実行することにより実現される。
最適化処理部110は、ユーザデータを、ユーザID順に論理的にソートして第1データベース220に格納するように、第1データベースシステム200(第1データベースマネジメントシステム(以下、DBMS)210)に指示する。
並列格納処理部120は、第1データベース220から、最適化処理部110の指示によって論理的にソートされたユーザデータを読み出して、第2データベース320に格納するように、第2データベースシステム300(第2DBMS310)に指示する。
第1データベースシステム200は、第1DBMS210と、第1データベース220とを備える。第1DBMS210は、例えば、スキーマ定義が不要な分散ファイルシステムを提供する。第1DBMS210は、構造管理やメタデータの保持などを行う“namenode”によって管理される。第1DBMS210は、Hadoopなどのオープンソースによって実現されるものであってよい。第1データベース220はn個のサーバにより実現される分散データベースである(nは任意の自然数)。各サーバは、HDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置を含む。
第2データベースシステム300は、第2DBMS310と、第2データベース320とを備える。第2DBMS310は、例えば、構造化されたキーバリュー型データストアとしての分散ファイルシステムを提供する。第2DBMS310において、キーは複数の値にマッピングされ、これらは列ファミリーとしてグルーピングされる。列ファミリーは事後的に追加可能である。さらに、列は特定のキーにのみ追加されるので、どの列ファミリーにおいても異なるキーは任意の列数を持つことができる。第2DBMSは、Cassandraなどのオープンソースによって実現されるものであってよい。第2データベース320はm個のサーバにより実現される分散データベースである(mは任意の自然数、n>m)。各サーバは、HDDやフラッシュメモリなどの記憶装置を含む。
なお、第1データベースシステム100、第2データベースシステム200共にデータの冗長化がなされているが、これについての説明は省略する。
また、データベース連携システム100は、第1データベースシステム200または第2データベースシステム300のいずれかに統合されてもよい。
図2は、第1データベースシステム200の機能について説明するための図である。図示するように、第1DBMS210は、ユーザデータをキャッシュなどに蓄積しておき、最適化処理部110からの指示があったタイミングで、図示する順に処理を実行する。
まず、第1DBMS210は、個別処理を行う。個別処理において、第1DBMS210は、ユーザデータ毎にバリデーションやフィルタリング処理を行う。
次に、第1DBMS210は、最適化処理を行う。最適化処理において、第1DBMS210は、ユーザデータをユーザID順に論理的にソートする。論理的にソートするとは、物理的な格納場所を変えるのではなく、物理アドレスに対応付けられた論理アドレスと、第1DBMS210が把握する論理構造との対応関係を並び替えることを意味する。更に、第1DBMS210は、第2データベース320におけるユーザIDとサーバの対応関係に応じて、第2データベース320におけるサーバごとにユーザIDをグループ化してもよい。
次に、第1DBMS210は、ユーザIDをハッシュ化し、第1データベース220における、ハッシュ値に応じた格納先のサーバにユーザデータを格納する。ユーザデータは、例えば、ユーザIDに対して、データと、データが収集された時刻を示すタイムスタンプとが対応付けられた形式で第1データベース220に格納される。この結果、同じユーザIDに対応付けられたユーザデータは、同じサーバに格納される。なお、図2に示す一連の処理の対象となるユーザデータは、例えば、タイムスタンプが、前回更新したユーザデータに付与されていたタイムスタンプよりも新しい日時を示すユーザデータである。
図3は、第2データベースシステム300の機能について説明するための図である。図示するように、第2DBMS310は、並列格納処理部120からの指示があったタイミングで、第2データベース320の各サーバにユーザデータを分散させて格納する。
第2DBMS310は、第2データベース320の各サーバに対応したチャネルを有する並列I/O312を備える。第2DBMS310は、第1データベース220からユーザデータを順次読み出して、ユーザデータに含まれるユーザIDに対応するサーバの識別情報を、ユーザID−サーバ対応リスト314を参照して取得する。そして、取得したサーバの識別情報に対応する並列I/O312のチャネルに対して、データの格納を指示する。これによって、ユーザデータが行方向および列方向に容易に参照可能であり、レコードの追加が容易なデータ群が作成される。
ここで、第2DBMS310を実現するための一例である、オープンソースのCassandraは、レコードの追加は容易であるが、膨大なデータを繰り返し格納する処理が比較的遅いという特性がある。この特性は、サーバに対応したチャネルを探索して切り替える処理に依存すると考えられる。この点、実施形態のデータベース連携システム100では、予め第2DBMS310におけるデータ処理に適した形にユーザデータを纏め上げるため、上記の特性を緩和し、データの更新速度を向上させることができる。例えば、第2DBMS310が第1データベース220からユーザデータを読み出す際に、一定量のユーザは同じユーザIDを有することが予め分かっていれば、その間、並列I/O312のチャネルを固定してユーザデータをサーバに転送することができるからである。
また、第1データベース220は、第2データベース320よりも多くのサーバで構成される。従って、第1データベース220にユーザデータを格納するために、サーバごとにユーザID順に論理ソートする処理は、第2データベース320に対して同様の処理を行う場合よりも処理負荷が低くなる。このため、最適化処理は、第2データベース320ではなく第1データベース220に対して行う方が迅速に完了する。
図4は、データベース連携システム100によって実行される処理の流れの一例を示すフローチャートである。まず、最適化処理部110が、ユーザデータの更新タイミングが到来したか否かを判定する(S100)。ユーザデータの更新タイミングが到来すると、最適化処理部110は、第1DBMS210に対して最適化処理を指示する(S102)。
次に、最適化処理部110は、第1DBMS210から最適化処理の完了通知がなされたか否かを判定する(S104)。完了通知がなされると、最適化処理部110は、並列格納処理部120に対して処理開始許可を通知する。並列格納処理部120は、第2DBMS310に対して並列格納処理を指示する(S106)。このようにして、最適化処理部110と並列格納処理部120は、同じ周期で処理を実行する。
以上説明した本発明のデータベース連携システム、データベース連携方法、およびプログラムの実施形態によれば、ユーザIDに対応付けられたデータを、ユーザID順に論理的にソートして第1データベース220に格納するように、第1データベースシステム200に指示する最適化処理部110と、第1データベース220から、最適化処理部110の指示によって論理的にソートされたデータを読み出して、[複数のサーバを有し、同じユーザIDに対応付けられたデータを一つのサーバに格納する分散データベースであり、各サーバに格納されたデータのユーザIDのリストを参照し、並列格納処理部110により指示されたデータの格納先のサーバを決定する第2データベースシステム300]に指示する並列格納処理部120と、を備えることにより、データの更新速度を向上させることができる。
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
100 データベース連携システム
110 最適化処理部
120 並列格納処理部
200 第1データベースシステム
210 第1DBMS
220 第1データベース
300 第2データベースシステム
310 第2DBMS
320 第2データベース

Claims (4)

  1. 識別情報に対応付けられたデータを、前記識別情報順に論理的にソートして第1データベースに格納するように、前記第1データベースを含む第1データベースシステムに指示する最適化処理部と、
    前記第1データベースから、前記最適化処理部の指示に応じて論理的にソートされたデータを読み出して、第2データベースに格納するように、前記第2データベースを含む第2データベースシステムに指示する並列格納処理部と、を備え、
    前記第1データベースは、前記第2データベースよりも多い複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースであり、
    前記第2データベースシステムは、複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースシステムであり、前記第1データベースシステムよりも格納先のサーバを探索する処理が遅く、各サーバと識別情報との対応関係を示すリストを参照し、前記並列格納処理部により指示されたデータの格納先のサーバを決定する、
    データベース連携システム。
  2. 前記最適化処理部と前記並列格納処理部は、同じ周期で処理を実行する、
    請求項1記載のデータベース連携システム。
  3. コンピュータが、
    識別情報に対応付けられたデータを、前記識別情報順に論理的にソートして第1データベースに格納するように、前記第1データベースを含む第1データベースシステムに指示する最適化処理と、
    前記第1データベースから、前記最適化処理における指示に応じて論理的にソートされたデータを読み出して、第2データベースに格納するように、前記第2データベースを含む第2データベースシステムに指示する並列格納処理と、を実行し、
    前記第1データベースは、前記第2データベースよりも多い複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースであり、
    前記第2データベースシステムは、複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースシステムであり、前記第1データベースシステムよりも格納先のサーバを探索する処理が遅く、各サーバと識別情報との対応関係を示すリストを参照し、前記並列格納処理における指示に応じてデータの格納先のサーバを決定するものである、
    データベース連携方法。
  4. コンピュータに、
    識別情報に対応付けられたデータを、前記識別情報順に論理的にソートして第1データベースに格納するように、前記第1データベースを含む第1データベースシステムに指示する最適化処理と、
    前記第1データベースから、前記最適化処理における指示に応じて論理的にソートされたデータを読み出して、第2データベースに格納するように、前記第2データベースを含む第2データベースシステムに指示する並列格納処理と、を実行させ、
    前記第1データベースは、前記第2データベースよりも多い複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースであり、
    前記第2データベースシステムは、複数のサーバを有し、同じ識別情報に対応付けられたデータを一つのサーバに格納する分散データベースシステムであり、前記第1データベースシステムよりも格納先のサーバを探索する処理が遅く、各サーバと識別情報との対応関係を示すリストを参照し、前記並列格納処理における指示に応じてデータの格納先のサーバを決定するものである、
    プログラム。
JP2017079545A 2017-04-13 2017-04-13 データベース連携システム、データベース連携方法、およびプログラム Active JP6967870B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017079545A JP6967870B2 (ja) 2017-04-13 2017-04-13 データベース連携システム、データベース連携方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017079545A JP6967870B2 (ja) 2017-04-13 2017-04-13 データベース連携システム、データベース連携方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2018180933A JP2018180933A (ja) 2018-11-15
JP6967870B2 true JP6967870B2 (ja) 2021-11-17

Family

ID=64276680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017079545A Active JP6967870B2 (ja) 2017-04-13 2017-04-13 データベース連携システム、データベース連携方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6967870B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5779548B2 (ja) * 2011-07-21 2015-09-16 株式会社日立製作所 情報処理システム運用管理装置、運用管理方法及び運用管理プログラム
JP5939123B2 (ja) * 2012-10-09 2016-06-22 富士通株式会社 実行制御プログラム、実行制御方法および情報処理装置
WO2015037205A1 (ja) * 2013-09-11 2015-03-19 日本電気株式会社 データ処理システム、データ処理方法およびプログラム記録媒体

Also Published As

Publication number Publication date
JP2018180933A (ja) 2018-11-15

Similar Documents

Publication Publication Date Title
US20230126005A1 (en) Consistent filtering of machine learning data
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
US10713589B1 (en) Consistent sort-based record-level shuffling of machine learning data
US11100420B2 (en) Input processing for machine learning
US10366053B1 (en) Consistent randomized record-level splitting of machine learning data
US20180276304A1 (en) Advanced computer implementation for crawling and/or detecting related electronically catalogued data using improved metadata processing
US9996593B1 (en) Parallel processing framework
US20170091327A1 (en) Distributed database systems and methods with pluggable storage engines
US10394939B2 (en) Resolving outdated items within curated content
CN106021256A (zh) 使用基于云的对象存储的消除重复分布式文件系统
JP6383110B2 (ja) データの検索方法、装置及び端末
US20150363467A1 (en) Performing an index operation in a mapreduce environment
CN106547914A (zh) 一种数据采集管理系统及其方法
JP2016024545A (ja) 情報管理装置、情報管理システム、及び情報管理方法
WO2020211367A1 (zh) 数据爬取方法、装置、计算机设备和存储介质
JP6069503B2 (ja) 系列データ並列分析基盤およびその並列分散処理方法
CN103778223B (zh) 一种基于云平台的普适背单词系统及其构建方法
US9529855B2 (en) Systems and methods for point of interest data ingestion
JP6967870B2 (ja) データベース連携システム、データベース連携方法、およびプログラム
JP2011215912A (ja) クローラ管理システム及び方法
JP2012208565A (ja) ログ管理方法、ログ管理装置、及びプログラム
JP5637071B2 (ja) 処理プログラム、処理方法及び処理装置
JP2015176407A (ja) 検索装置、検索方法、検索用プログラムおよび検索用データ構造
JP7211255B2 (ja) 検索処理プログラム、検索処理方法及び情報処理装置
JP2014228984A (ja) 推薦システム、推薦サーバ、推薦方法および推薦プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210407

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: 20210928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211026

R150 Certificate of patent or registration of utility model

Ref document number: 6967870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350