Cherre が Cloud SQL for PostgreSQL を使用して不動産データを変換した方法
Google Cloud Japan Team
※この投稿は米国時間 2021 年 10 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。
編集者注: 今回は、Cherre の共同創設者である Ben Hizak 氏にお話を伺います。複数のデータセットを 1 つのデータ ウェアハウスに統合し、お客様のために BI と分析を実現する Cherre のアプローチについて紹介します。Cherre がどのように Google Cloud と Cloud SQL を使用して 不動産のデータセットをまとめ、より良いデータドリブンな意思決定ができるようにお客様をサポートしているかについて説明しています。
Cherre が目指すのは、不動産投資と融資審査を技術に変換することです。それには何千ものデータセットを接続して、投資、管理、融資審査の意思決定に利用できるようにすることが求められます。最新のデータに基づいた実用的な分析情報を提供することで、クライアントはこれまで答えられなかった質問に答えることができます。クライアントはそれぞれ、公開データセットと有料のデータセットの異なる組み合わせに関心があり、それらをクライアントの非公開データと組み合わせます。そのすべてが、スケーラブルかつ安全で、繰り返し可能な方法で行われる必要がありますこのデータを BigQuery で処理し、Cloud SQL for PostgreSQL に保存します。Cloud SQL for PostgreSQL は、クライアントが機械学習モデルのトレーニングや、Google Kubernetes Engine(GKE)上で動作する API 経由での利用、Looker などの BI ツールを使用した可視化などに利用可能な信頼できる単一の情報源です。


Cherre が取り入れるまで、このような統合されたデータの活用は、不動産業界ではありませんでした。また、データセットは 1 か所にまとまっておらず、それぞれのデータセットにはさまざまな属性を持つさまざまなプロパティが含まれていました。例を上げると、Cherre の参入前は、あるベンダーの取引に関するデータと、別のベンダーの証券化された債務に関するデータは、まったく関連性のないものだったのです。非公開データに関しては、ベンダーはシステムから元データを流出させることは決してありませんでした。ベンダーとの信頼を築いたことで、私たちのプラットフォームにデータを載せてくれるようになったことは、かけがえのない名誉であり、責任でもあります。
Cherre のクライアントは、大規模な不動産ファンド、銀行、保険会社などの大規模な組織で、それぞれ数十億ドルを管理しています。大規模な組織にとって、正しい判断と間違った判断の違いが、ビジネスの成功と失敗を分ける可能性があります。スピードへのニーズは尽きることがありません。Cherre は、クリーンで接続されたデータをすぐに使えるようにすることで、クライアントがより良い意思決定を迅速に行えるようにしています。Cherre のお客様は、チャンスやトレンドを以前より迅速かつ正確に評価し、ポートフォリオを効率的に管理しながら、手作業によるデータ収集や分析のコストを何百万ドルも削減できます。
データを統合して投資を技術に変える
何千ものデータセット、何百万ものデータポイントを統合するには、技術力と人間の感受性の両方が求められます。Cherre は、最高レベルのセキュリティを必要とする大規模な機関と、自社のクライアントに提供するものと同等またはそれ以上のインフラストラクチャでデータを配信する Cherre の能力に自らの評価を賭けている、内部データを扱うプロバイダという 2 組の利害関係者の中心点としての役割を果たしています。Cherre の評価は、技術インフラストラクチャの強さにかかっています。
Postgres を選ぶ理由
API をサポートするデータベースを選択するとき、Postgres が最も理にかなったソリューションでした。Postgres は、機能が豊富で高速、さらに強力なコミュニティを持っています。また、Postgres には強力な地理空間能力があります。これは不動産業界の顧客にとって絶対に外すことのできない条件です。
Postgres と GraphQL を組み合わせて「ワイドデータ」のシナリオで異なるユースケースに対応
スタックを理解するには、データを理解することが必要です。データ エンジニアの多くは、少数のフィールドを非常に高速に処理する必要のある「細くて速い」シナリオで作業をしています。私たちの場合は正反対です。不動産データは「広くて遅い」もので、入力は何千ものテーブルで構成されています。特定のクライアントのために、100 以上のテーブルと数千の列を削減して管理性を向上させました。これにより、クライアントが API を介して使用し、 Looker で可視化できるようになります。クライアントの中には、Cherre のインフラストラクチャ上で直接計算を行っている方もいらっしゃいます。
REST では対応できない
クライアントごとに、データに求める内容は異なります。テナントの数や平均入居率、入居期間など、特定の建物に関する情報に関心を持つクライアントもいれば、火災予防のための規定など、一般的な情報に興味があるクライアントもいます。クライアントは、どのような列でもフィルタリングでき、データセットの結合方法を理解しなくてもデータセットを走査できることを期待しています。従来の REST API では、クライアントはすべてのオブジェクトを引き出し、クライアント側で組み立てる方法を理解している必要がありました。しかし、それはデータの取り込みをできるだけ簡単にするという私たちの目的に反していました。データのラングリングが私たちの仕事です。異なるアプローチを模索しなければならず、そのためにはまったく異なるアーキテクチャが必要でした。
GraphQL - この最新の API が有効です。 データのオーバーフェッチやアンダーフェッチを防ぐだけでなく、テーブルの結合や関係(1 対多、多対 1、多対多)の走査を、クライアントにとってシームレスな方法で行うことができます。不動産データは、何千もの機関から多様な形式や品質で提供されているため、ラングリングが難しい場合があります。このデータはさまざまなオブジェクト上に構築されていて、一貫性のある鍵や同一のデータポイントがないことが多く、複雑で非常に繊細な結合が必要になります。Cherre は、その負担をクライアントに負わせるのではなく、引き受けたいと考えていました。ここで GraphQL の出番です。GraphQL を採用したことで、Cherre は細部に焦点を当てることができ、クライアントは全体的な方針に集中できます。
GraphQL を使用すると、クライアントが関心のあるオブジェクトやフィールドだけクエリを実行し、サーバー側で結合、フィルタリング、集計を行い、使いやすいレスポンスを得ることができます。次の例では、建物とその居住区画(ユニット)という 1 対多の結合を行い、両方のエンティティに対してフィルタリングを行っています。
この例では、各居住区画が 1 つの建物にしか属していないため、多対 1 のクエリを確認できます。
そしてこの例では、居住区画が属している建物(ここでは 2010 年以降に建設された、ドアマンがいる建物)に基づいて居住区画を抽出する 1 対多のクエリを確認できます。
最初から正確とは限らないので使い捨てのテーブルを利用
Cherre は何千ものデータセットと数万もの入力フィールドを扱っているので、フィールドの誤解や、計算を誤る可能性は非常に高く、確実に起こると言えます。これを未然に防ぐために、出力をゼロから作り直せるようにしたかったのです。私たちは「使い捨てのインフラストラクチャ」のようなものを探していましたが、データセットは別でした。
Cherre は、既存のデータを運用するのではなく、必要なものを常にゼロから計算し直すと決めました。このアプローチは、不変テーブルと呼ばれることが多いです。間違いがあった場合、コードを修正して再実行すると、間違いが修正されます。
これを実現するために、Cherre は短期間だけ使用できる不変テーブルをビルドします。そして、クライアント トラフィックの一部または全部を、新しいテーブルに送ります。ゼロ ダウンタイムのロールバックが必要になったときのために古いテーブルは残しておきますが、最終的にはスペースを確保するために古いテーブルを削除します。Cherre は、適切なバージョンのコードを実行することで、ゼロから再ビルドできるという自信を持ってデータを削除します。
不変テーブルは、コストがかかり、処理時間も長くなりますが、Cherre はそれを使用することで、何も失われていないという自信を持って迅速に反復処理ができるのです。また、2 つのバージョンの出力を比較することもできます。
Cloud SQL を選ぶ理由
このように、Cherre のデータベースのニーズを満たすにはある程度の労力がかかります。それが、Cloud SQL for PostgreSQL を選んだ理由です。私たちは費用を管理する必要があり、Cloud SQL の確約利用割引(CUD)と DoIT international の費用のモニタリング ツールを使って管理しています。また、高可用性、リードレプリカ、バックアップ管理も必要としています。Cloud SQL がそのすべてを行うので、開発に時間を費やす必要はありません。また、本来ならパッチ適用やソフトウェアのアップグレードに費やすはずだった時間も節約できます。
私たちは Google Cloud プロジェクトを使用して堅牢な情報セキュリティを実装しているので、Google のプロジェクト システム内に適したデータベースを持つことで、権限とセキュリティを管理する方法を組織全体で一貫させることができます。そして、Kubernetes を介して Google Cloud のリソースをプロビジョニングできる Config Connector を活用しています。Cherre は、すべてにおいて infrastructure-as-code を使用したいと考えています。そして、Google Kubernetes Engine(GKE)を使用しているので、オペレーションに Config Connector を使用するのは理にかなったことでした。
今後の対応
自分たちが構築してきたものを誇りに思っていますが、改善の余地は常にあります。テクノロジーが進化し、私たちが発展し続ける中で、さらに効率を上げる新たなチャンスを模索しています。また、データベースの最適化をさらに進めて活用することを目指していますが、これは Query Insights のおかげで、今ではとても簡単に実行できます。情報は日々増え続けています。そのデータに基づいて、よりスマートな意思決定を行うことができる 購入者、販売者、その他の不動産関係者は、市場において優位に立つことができます。Cherre は、彼らがビジネスで成功するために必要なつながりを作ることを約束します。
Cloud SQL、Cloud SQL insights、Looker の詳細については、ドキュメントをご覧いただくか、Cloud SQL insights の Codelab にご参加ください。
- Cherre 最高執行責任者兼共同創設者 Ben Hizak 氏