数据源表概述

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介:

实时计算的源表是指流式数据存储。流式数据存储驱动实时计算的运行,因此每个实时计算子作业必须提供至少一个流式数据存储。

语法

 
 
  1. CREATE TABLE tableName
  2. (columnName dataType [, columnName dataType ]*)
  3. [ WITH (propertyName=propertyValue [, propertyName=propertyValue ]*) ];

示例

 
 
  1. create table datahub_stream(
  2. name varchar,
  3. age BIGINT,
  4. birthday BIGINT
  5. ) with (
  6. type='datahub',
  7. endPoint='http://dh-et2.aliyun-inc.com',
  8. project='blink_xxx',
  9. topic='test_xxx',
  10. accessId='0i70Rxxxxx',
  11. accessKey='yF60EwUxxxx',
  12. startTime='2017-07-21 00:00:00'
  13. );

Watermark定义

Watermark是一种衡量Event Time进展的机制,它是数据本身的一个隐藏属性。Watermark的定义是数据原表DDL定义的一部分。Flink提供如下语法定义:

 
 
  1. WATERMARK [watermarkName] FOR <rowtime_field> AS withOffset(<rowtime_field>, offset)
  • watermarkName 标识了这个 watermark 的名字,可选。
  • <rowtime_field> 必须是表中已定义的一列(当前仅支持为Timestamp类型),含义是基于该列生成 watermark,并且标识该列为 Event Time 列,可以在后续 query 中用来定义窗口。
  • withOffset 是目前提供的watermark的生成策略,是根据<rowtime_field> - offset生成watermark的值。withOffset的第一个参数必须是<rowtime_field>
  • offset 单位为毫秒,含义为watermark值与event time值的偏移量。

通常一条记录中的某个字段就代表了该记录的发生时间。例如,表中有个rowtime字段,类型为Timestamp,其中某个值为1501750584000(2017-08-03 08:56:24.000),如果您需要定义一个基于该rowtime列的watermark,且watermark策略为偏移4秒,需要如下定义。

 
 
  1. WATERMARK FOR rowtime AS withOffset(rowtime, 4000)

这条数据的watermark时间为 1501750584000 - 4000 = 1501750580000(2017-08-03 08:56:20.000)。这条数据中timestamp小于1501750580000(2017-08-03 08:56:20.000)的数据,都已经到达了。

计算列

概念

计算列是虚拟列,并非实际存储在表中。计算列的表达式可以使用其他列中的数据来计算其所属列的值,可以使用表达式、内置函数、或是自定义函数。灵活度与SELECT中的表达式一样。计算列在Flink中可以像普通字段一样被使用。

用途

目前watermark的rowtime列只支持Timestamp类型(未来会支持Long类型),watermark只能定义在源表DDL中,如果您的源表中没有 Timestamp类型的列,需要从其他类型的字段转换而来,可以使用计算列来转换。

语法

 
 
  1. <computed_column_definition> ::= column_name AS computed_column_expression

示例

 
 
  1. #如果datahub的TIME字段是微秒级别的(16位Unix时间戳),可以用计算列来转换。
  2. CREATE TABLE sls_stream(
  3. a INT,
  4. b BIGINT,
  5. TIME BIGINT,
  6. ts AS TO_TIMESTAMP(TIME/1000),
  7. WATERMARK FOR ts AS withOffset(ts, 1000)
  8. ) with (
  9. type = 'DATAHUB',
  10. ...
  11. );

如上示例中所示,源表数据中的字段TIME包含时间信息,为BIGINT类型。用计算列的功能将字段TIME转换成了Timestamp类型的ts字段,并将ts字段作为watermark的rowtime字段。

本文转自实时计算——数据源表概述

相关文章
|
6月前
|
算法 Java API
2025 版 Java 零基础入门到精通实操指南
这篇文章为零基础学习者提供了Java入门的全面指南。首先介绍了Java的特点和用途,然后详细讲解了环境搭建步骤(JDK安装、环境变量配置和IDE选择),并以&quot;Hello World&quot;程序为例演示了开发流程。文章还系统性地讲解了Java核心语法,包括变量与数据类型、运算符、控制流语句、数组和方法等基础知识,以及面向对象编程和异常处理的概念。通过代码示例帮助读者理解和实践,最后建议掌握基础后可进一步学习Java高级特性和框架。文中还提供了代码获取方式和关注入口,适合Java初学者系统学习。
957 2
|
11月前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
391 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
传感器 存储 安全
物联网技术
物联网(Internet of Things,IoT)是指通过感知设备、网络传输、数据处理等技术手段,实现物与物、人与物之间的互联互通和智能化管理的网络
1587 48
|
9月前
|
存储 运维 监控
首次!阿里云可观测技术论文登上两大国际顶会
首次!阿里云可观测技术论文登上两大国际顶会
157 0
|
数据可视化 数据挖掘 API
NumPy 在科学计算中的角色
【8月更文第30天】NumPy 是 Python 中用于科学计算的核心库之一,它为 Python 提供了高效的数组处理能力。由于其强大的性能和简洁的 API,NumPy 成为了物理学、工程学以及其他科学领域进行数值计算的标准工具。本文将探讨 NumPy 在这些领域的应用,并通过具体的代码示例来展示 NumPy 的强大功能。
291 1
|
数据采集 人工智能 API
少即是多!10亿参数小巨人击败ChatGPT
【7月更文挑战第9天】Salesforce AI Research团队的APIGen提出了一种自动化方法,生成可验证的函数调用数据集,用于提升LLMs的微调。使用APIGen,即使10亿参数的模型也能在功能调用基准上超越GPT-4等大模型。发布的60K数据集旨在促进该领域的研究。尽管目前局限于Python和REST API,APIGen展示了小模型如何通过高质量数据挑战大模型,为语言模型的效率提升开辟新途径。[论文链接](https://arxiv.org/pdf/2406.18518)
237 1
|
数据采集 运维 监控
自动化运维:用Python打造简易监控系统
【8月更文挑战第31天】在追求高效的IT世界里,自动化运维不再是奢侈品而是必需品。本文将通过一个Python示例,展示如何构建一个简单的系统监控工具。从数据采集到警报触发,我们将一步步解锁自动化的秘密,让你的服务器管理变得轻松而高效。
|
缓存 监控 Java
Java一分钟之-Apache Geode:分布式内存数据平台
【5月更文挑战第21天】Apache Geode是低延迟的分布式内存数据平台,用于构建实时应用,提供缓存、数据库和消息传递功能。本文聚焦于Geode的常见问题,如数据一致性(数据同步延迟和分区冲突)和性能瓶颈(网络延迟和资源管理不当),并提出解决方案。确保数据一致性可通过选择合适的数据策略和利用`InterestPolicy`、`CacheListener`;提升性能则需优化网络和合理配置资源。通过示例代码展示了如何创建和操作Geode的Region。正确配置和调优Geode对于实现高可用、高性能应用至关重要。
326 1
|
PyTorch 算法框架/工具 Docker
ModelScope问题之odelScope使用了官方的docker的cpu镜像如何解决
ModelScope镜像是指用于在ModelScope平台上创建和管理的容器镜像,这些镜像包含用于模型训练和推理的环境和依赖;本合集将说明如何使用ModelScope镜像以及管理镜像的技巧和注意事项。
611 0