开发者社区 > 大数据与机器学习 > 实时数仓 Hologres > 正文

Hologres这个字段是怎么来的,上游的字段还是新增的计算列?

Hologres这个字段是怎么来的,上游的字段还是新增的计算列?

展开
收起
cuicuicuic 2023-12-12 18:43:04 28 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Hologres中的字段可以是上游的字段,也可以是新增的计算列。

    1. 上游字段:如果Hologres中的字段与上游数据源中的字段相同,那么这个字段就是上游的字段。在创建Hologres表时,可以直接引用上游数据源中的字段。例如,假设上游数据源中有一个名为age的字段,可以在Hologres表中直接使用该字段:
    CREATE TABLE my_table (
        id INT,
        name VARCHAR(255),
        age INT
    );
    
    1. 计算列:除了上游的字段外,Hologres还支持新增计算列。计算列是基于现有字段进行计算得出的新字段。在创建Hologres表时,可以使用SQL表达式来定义计算列。例如,假设Hologres表中有一个名为salary的字段,我们想要计算每个员工的年薪,可以添加一个名为annual_salary的计算列:
    CREATE TABLE employees (
        id INT,
        name VARCHAR(255),
        salary DECIMAL(10, 2),
        annual_salary AS salary * 12
    );
    

    在这个例子中,annual_salary就是一个新增的计算列,它通过对salary字段进行乘法运算得到。

    2023-12-13 14:03:08
    赞同 展开评论 打赏
  • mysql的元数据列
    ,此回答整理自钉群“实时数仓Hologres交流群”

    2023-12-13 11:05:42
    赞同 展开评论 打赏
  • 在 Hologres 中,一个字段可以是来自于上游表的字段,也可以是通过计算、转换或表达式生成的新增列。

    1. 上游字段:如果您在 Hologres 中创建的表是基于已存在的上游表,在 CTAS 或 INSERT INTO 语句中选择的字段将会直接从上游表中映射过来。这些字段可以是源表中已有的字段,其数据会被复制到新表中。

    2. 计算列:Hologres 支持使用表达式和函数来计算值,并将计算结果存储为新列。您可以在 CREATE TABLE 语句中使用 SELECT 子句来指定计算列的定义。例如,在 SELECT 子句中,您可以使用 SQL 函数、运算符以及列之间的操作来生成新的计算列。

    下面是一个示例,展示了如何在 Hologres 中创建一个表,并添加一个计算列:

    CREATE TABLE my_table (
       id INT,
       name VARCHAR(50),
       age INT,
       birth_year INT,
       current_year INT,
       calculated_age INT GENERATED ALWAYS AS (current_year - birth_year) STORED
    );
    

    在上述示例中,我们创建了一个名为 "my_table" 的表,其中包含了几个基本字段(id、name、age、birth_year、current_year),以及一个计算列 "calculated_age"。计算列使用 GENERATED ALWAYS AS 子句定义,表达式 (current_year - birth_year) 将根据当前年份和出生年份计算出年龄,并将结果存储在新的计算列中。

    2023-12-12 21:12:11
    赞同 展开评论 打赏

本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975

相关产品

  • 实时数仓 Hologres
  • 相关电子书

    更多
    实时数仓Workshop(广州站)- 李佳林 立即下载
    阿里云实时数仓Hologres技术揭秘2.0 立即下载
    实时数仓Hologres技术实战一本通2.0版(下) 立即下载