Tinybird
扫码查看

用于构建实时数据分析API的平台

Tinybird

综合介绍

Tinybird 是一个为开发者和数据团队设计的实时数据分析平台。它通过提供基于云端ClickHouse的托管服务,让使用者能够处理大规模的流式数据,并快速地将SQL查询转化为低延迟、高并发的API接口。该平台的核心理念是简化实时数据产品的开发流程。用户可以将来自不同来源(如Kafka、数据仓库或直接通过HTTP请求)的数据注入Tinybird,然后使用标准SQL对这些数据进行转换、关联和分析。完成的查询可以一键发布为生产环境可用的REST API,从而为各种应用(如用户仪表盘、实时个性化推荐、日志分析和物联网监控)提供数据支持。Tinybird提供了一套完整的开发工具,包括命令行界面(CLI)、版本控制(Git)集成和本地开发环境,使开发者能像开发普通软件一样,用代码来管理和部署数据分析流程。

功能列表

  • 托管ClickHouse数据库: 提供一个无需管理、可处理数十亿行数据并实现亚秒级查询延迟的OLAP数据库。
  • SQL查询转API: 允许用户编写标准SQL查询,并将其一键发布为可扩展、安全的参数化REST API。
  • 流式数据接收: 支持通过HTTP端点以高吞吐量(每秒数千次请求)接收JSON事件,或通过原生连接器从Kafka等流处理平台接收数据。
  • 多种数据源集成: 可连接到现有的数据存储,如Amazon S3、Google BigQuery、Snowflake等,无需复杂的ETL流程。
  • 本地开发和部署: 提供Tinybird Local,一个可在本地计算机上运行的容器化环境,用于开发和测试数据管道,并通过命令行工具(CLI)部署到云端。
  • 代码化数据工作流: 所有的数据表结构(Schemas)和数据处理管道(Pipes)都以纯文本文件定义,方便纳入Git进行版本控制和CI/CD。
  • 内置任务调度: 提供无服务器的异步任务队列,用于按计划执行数据同步、转换和物化视图等任务。
  • 安全与权限管理: 通过静态Token或范围限定的JWT来保护API和数据资源,支持行级安全策略以实现多租户应用的数据隔离。
  • AI辅助开发: 引入Tinybird Code功能,一个AI助手,可以在命令行界面中帮助开发者编写和构建数据分析项目。

使用帮助

Tinybird的核心是让开发者能够专注于使用SQL来构建数据产品,而无需担心底层基础设施的扩展性和维护性。下面将详细介绍如何上手使用Tinybird并操作其主要功能。

步骤一:注册并创建项目

  1. 访问Tinybird官网并注册一个免费的“Build Plan”账户,此计划永久免费,无需信用卡,并提供足够个人项目使用的资源。
  2. 登录后,系统会引导你创建一个“Workspace”(工作区)。你可以选择一个模板来快速开始,例如“Web Analytics Starter Kit”(网站分析入门套件)或“Log Analytics Starter Kit”(日志分析入门套件),这些模板会预置一些示例数据和API。

步骤二:安装CLI并进行本地开发

为了获得最佳的开发体验,建议安装Tinybird的命令行工具(CLI)。它允许你在本地环境中定义数据源、编写查询并进行测试。

  1. 安装CLI: 在你的终端中运行以下命令来安装CLI。
    curl -sSL https://tinybird.co/install.sh | sh
    
  2. 登录账户: 安装成功后,使用以下命令登录你的Tinybird账户。
    tb login
    
  3. 初始化本地项目: 在你的电脑上创建一个项目文件夹,并使用CLI将其与你的Tinybird工作区连接起来。
    # 从云端同步你的工作区项目到本地
    tb pull my_project
    cd my_project
    

    这会在本地创建一个包含.datasource.pipe等文件的项目结构。

步骤三:注入数据

Tinybird支持多种数据注入方式。

  • 使用HTTP Events API: 这是最简单的方式之一,你可以直接向一个固定的HTTP端点发送POST请求来注入JSON数据。
    1. 在Tinybird的UI界面或使用CLI创建一个Data Source(数据源)。
    2. 创建时,Tinybird会自动为你生成一个专用的API端点和一个鉴权Token
    3. 使用任何可以发送HTTP请求的工具(如curl或在你的应用程序代码中)向该端点发送数据。
      curl -X POST "https://api.tinybird.co/v0/events?name=your_datasource_name" \
      -H "Authorization: Bearer YOUR_INGESTION_TOKEN" \
      -d '{"key1": "value1", "key2": 123, "timestamp": "2025-07-25 10:00:00"}'
      
  • 连接数据仓库或Kafka:
    1. 在UI界面的“Add Data Source”页面,选择你想要连接的数据源,如Snowflake, BigQuery,或Kafka。
    2. 按照界面的引导,填写连接凭证和相关信息(例如数据库地址、Kafka主题等)。
    3. 定义数据同步的计划,例如每小时同步一次。

步骤四:使用Pipes编写SQL并创建API

Pipes是Tinybird的核心功能,它允许你通过串联多个SQL查询节点来构建复杂的数据转换逻辑。

  1. 创建Pipe: 在UI界面或在本地创建一个.pipe文件。一个pipe文件就是一个SQL查询。
    -- 文件名: my_analytics_pipe.pipe
    SELECT
    t.day,
    count() as pageviews
    FROM events e
    GROUP BY toStartOfDay(e.timestamp) as day
    ORDER BY day DESC
    
  2. 链式节点: 你可以创建多个节点,并将它们连接起来。例如,一个节点用于清理数据,下一个节点用于聚合,最后一个节点用于计算最终指标。每个节点都是一个独立的SQL SELECT语句,后一个节点可以引用前一个节点的名称作为其FROM子句。
  3. 添加参数: 你可以在SQL查询中使用模板语法来创建动态API。例如,允许API消费者通过URL参数筛选数据。
    -- 文件名: filter_by_user.pipe
    -- Description: '获取特定用户的活动'
    SELECT * FROM events
    WHERE user_id = {{ String(user_id, 'default_user') }}
    
  4. 发布为API: 当你在UI中保存一个Pipe或使用CLI将本地.pipe文件推送到云端后,Tinybird会自动为该Pipe的最后一个节点生成一个HTTP API端点。
    • 使用CLI部署:
      # 将本地所有更改推送到Tinybird云端
      tb push
      
    • 你可以在UI界面的Pipe视图中找到生成的API端点URL和对应的鉴权Token。

步骤五:调用和监控API

  • 调用API: 使用生成的URL和Token,在你的前端应用、后端服务或任何其他需要数据的地方调用这个API。
    curl "https://api.tinybird.co/v0/pipes/my_analytics_pipe.json" \
    -H "Authorization: Bearer YOUR_READ_TOKEN"
    
  • 监控: Tinybird的UI提供了内置的监控仪表盘,你可以实时查看API的调用次数、延迟、错误率等指标,帮助你了解API的性能和使用情况。

应用场景

  1. 用户分析仪表盘为SaaS产品或网站构建面向用户的实时分析仪表盘。开发者可以将用户行为事件(如页面浏览、按钮点击)实时发送到Tinybird,然后创建API来展示每个用户的活跃度、功能使用频率等指标,而无需自己维护和扩展复杂的数据库。
  2. 实时个性化推荐电商或内容平台可以利用Tinybird构建实时内容推荐系统。通过实时分析用户最近的浏览、点击和购买行为,系统可以动态生成个性化推荐列表的API,并在用户下一次访问时提供相关内容,提升用户体验和转化率。
  3. 日志和可观测性分析替代传统的日志分析工具,将应用程序和服务器的日志、错误和性能数据实时注入Tinybird。开发者可以使用SQL快速查询和分析TB级别的日志数据,快速定位问题,并为系统性能创建实时监控告警API。
  4. 金融交易监控在金融科技领域,可以用于实时监控欺诈行为或市场异动。通过将交易数据流式传输到Tinybird,可以建立复杂的规则和查询,在几毫秒内识别出可疑的交易模式并触发警报。

QA

  1. Tinybird和直接使用ClickHouse有什么区别?Tinybird是一个基于ClickHouse的完全托管平台。它抽象了ClickHouse的集群管理、数据扩展、安全配置和性能优化等复杂工作。更重要的是,Tinybird的核心价值在于其“SQL-to-API”的工作流和配套的开发者工具(如CLI和Git集成),让开发者能快速地将数据分析转化为可直接在生产环境中使用的API产品,这是原生ClickHouse不具备的。
  2. Tinybird的费用如何?Tinybird提供一个永久免费的“Build”套餐,包含一定的免费数据处理量、存储空间和API请求次数,足够用于个人项目和学习。对于更大型的应用,它提供付费套餐,价格根据处理的数据量、存储量和API请求量等资源使用情况而定。
  3. Tinybird是否安全?是的。该平台通过了SOC2 Type II认证,并且符合HIPAA标准,表明其在数据安全、可用性和保密性方面达到了行业标准。它提供了基于Token的API认证、灵活的权限范围设置(读、写、管理)和行级安全策略,可以确保数据在多租户环境下的安全隔离。
微信微博Email复制链接