大约五年前,我们的创始人率先发现了英国现行分类系统(SIC 代码)的一个问题。从那时起,我们便携手合作,构建了一个平台 来解决这个问题。
SIC 代码缺乏实时性,无法准确/可靠地定义新兴经济体。如今,我们的英国平台允许任何用户在几秒钟内构建任何行业的定义。
在众多应用中,我们的技术尤其被用于塑造创新集群,并支持DSIT推动国家工程生物学愿景。然而,我们的客户不断询问我们的数据是否覆盖国际,而我们的答案始终是“否”。就这样,我们为下一次重大飞跃做好了准备。
快速提醒一下,这是一篇很长的深入文章,因此这里有一个 TL;DR:
作为一家公司,我们通过开发一款具有实时分类功能的 厄瓜多尔电报号码数据库 英国专用产品,解决了英国标准行业分类 (SIC) 代码的缺陷。在客户需求的驱动下,我们着手打造一款全球化产品,以应对国际数据获取、用户界面一致性和扩展功能等挑战。关键要素包括:利用 Creditsafe 数据、Clickhouse 数据库和 400 个 RTIC 分类器,以及简化运营的技术解决方案。我们的全球化产品旨在打造最佳的全球行业引擎,提供实时数据以支持明智的决策,并邀请客户探索和参与产品的进一步改进。
初步规划
在开始构建任何东西之前,我们必须问自己(以及我们的客户)几个关键问题:
我们的使命宣言是什么?
我们的愿景宣言是什么?
我们将从哪里获取数据?
全球产品应该是什么样的?
主要特点是什么?
RTIC 将会是什么样子?
最初将覆盖多少个国家?
我们将如何克服语言差异的问题?
对我来说幸运的是,老板已经对问题 1 和问题 2 给出了答案。
#1 任务
在数据城,我们的使命是“构建全新的标准行业分类体系”。我们正在开发一个基于现代搜索和机器学习分类的独特公司数据库。我们的实时行业分类 (RTIC)突破了依赖于过时标准行业分类 (SIC) 代码的静态行业数据的局限性。
#2 愿景
我们的愿景是“摆脱 SIC,寻找并投资能够应对世界关键挑战和机遇的行业”。
在实际开始建造任何东西之前,明确阐述使命和愿景,将产生巨大的力量。
我和开发团队对我们构建这款全球化产品的原因以及最终目标有着完全透明的认识。在不知道具体需要构建什么的情况下开始开发工作,没有什么比这更糟糕的了。
#3 获取数据
这对我们来说相当容易。我们与Creditsafe的合作伙伴已经建立了良好的合作关系。他们能够通过 SFTP 系统向我们提供批量全局文件,使我们的数据提取既自动化又快速。
我们可以应用一些快速转换来适应我们的使用情况,并且 Creditsafe 对我们的一些重点国家(例如美国)有很好的覆盖范围。
Creditsafe 在标准化公司记录和财务方面做得非常出色,这意味着数据很容易解释。
在我们当前版本的全球产品中,我们使用 Creditsafe 提供的网站来支持我们的 RTIC。这是与英国产品的一个关键区别(就目前而言!),在英国,我们进行了大量的URL 匹配流程,以提高数据的可靠性,尤其是在 RTIC 分类方面。
3a)获取数据:技术实施
我们的摄取管道使用标准提取、转换、加载 (ETL) 流程分几个阶段运行。
我们连接到 SFTP 并使用数据版本控制 ( DVC ) 来确定上游是否有任何更改,然后运行转换,并在需要时加载 ETL 流程的元素。所有这些都是用 Python 编写的,并使用 pipenv 来管理依赖项。
我们的采集管道使用black进行格式化,并利用 GitHub Actions 的强大功能进行 CI/CD。输出将 SQLite 数据库的压缩版本推送到 Blob 存储。之后,在下游,它会被转换为 DuckDB。
在我们最近对其他数据管道的一些修订中,我们已切换到poetry和ruff。我们将在这次修订中讨论这个问题。
4. 美学
再次,在全球平台的 UI 上做出的决定相当容易。
我们的英国用户熟悉该平台的运作方式,因此无需过度复杂化。我们将其设计得与英国平台极其相似,力求实现几乎相同的功能水平。
4a) 美学:技术实现
同样,全球平台前端的实现与我们的英国产品密切相关。
该产品的核心由 HTML、CSS 和原生 JS 构建而成。此外,PHP 还用于创建动态页面内容。这种相对简单的设置为我们带来了良好的网站性能和快速的页面加载时间。我们还可以快速开发、测试和发布一系列相关产品的新功能。
来自前端的数据请求通过自定义的 PHP 中间件层处理,该中间件层负责管理用户身份验证。来自后端服务器的响应通过基于 JSON 的 REST API 发送。
#5 主要特点
我们列出了需要尽快构建的关键功能,以使全球平台可用:
1. 在“探索”中查看和筛选公司详情的功能
1.1. RTIC 筛选器
1.2. 国家/地区筛选器
1.3. 法律形式
1.4. 公司搜索
1.5. 财务状况
1.5.1. 营业额范围
1.5.2. 员工范围
1.6 公司网站文本的关键字搜索
2.在“分析”中汇总和可视化结果的能力
2.1. 汇总
2.1.1. 公司总数
2.1.2. 总营业额
2.1.3. 员工总数
2.2. 国家分布
2.3. 公司法律形式数量
5a)主要特点:Backlog
以下是我们计划在 6 个月的 Global Alpha 测试期间添加到产品中的已确定的数据和功能列表。然而,由于这是一项新测试,并且包含大量未知数据,因此我们目前无法承诺全部或部分内容。
添加 ML 列表构建功能
额外的CreditSafe公司数据
RTIC 摘要选项卡
CreditSafe URL 匹配的质量保证
新增 URL 匹配
Dealroom 数据合并
Lightcast 数据连接
附加分析小部件/功能/数据
5b)主要特点:技术实现
一旦获得数据,我们就能快速构建其中的大部分功能。然而,如果不能保持用户能够快速获取洞察的速度,所有这些功能都毫无意义。
我们探索了几种不同的平台驱动方案,例如使用功能强大的 Postgres 实例,最终我们最终选择了Clickhouse。Clickhouse宣称他们是“面向实时应用和分析的最快、资源最高效的开源数据库”,我们基本证实了这一点。它是一款极其强大的工具。
我们的全球数据库目前存储着约 1.1 亿家公司的数据(与我们的英国产品相比,仅增长了 2100%!)。面对如此庞大的数据量以及数据库查询的性质,传统的 RDBMS(关系数据库管理系统)已无法胜任。像计数查询这样的简单操作,我们只需要几秒钟就能完成,却要花几分钟。
过渡到Clickhouse为我们带来了所需的性能提升,特别是对于产品的某些领域,例如需要及时汇总大量数据的 Analyse。
除了 Clickhouse,我们还有一个Redis缓存层,它有助于提高常用过滤器和查询的响应时间。