• dremio 的外部反射使用说明


    dremio 外部反射的意思是,反射的数据是在外部存储中,而不是由dremio 自己生成的,典型的场景是我们自己已经包含了物化的数据
    而且我们想直接使用物化的数据

    创建外部反射

    • 创建vds
     
    CREATE VDS "myWorkspace"."sales_by_region" AS
    SELECT 
        AVG(sales_amount) average_sales,
        SUM(sales_amount) total_sales,
        COUNT(*) sales_count,
        region
    FROM mySource.sales
    GROUP BY region
    • 创建外部反射
    ALTER DATASET "myWorkspace"."sales_by_region" 
    CREATE EXTERNAL REFLECTION "external_sales_by_region" 
    USING "mySource"."sales_by_region"

    参考示例

    • 环境准备
      docker-compose 同时进行一些数据表的创建
     
    version: "3"
    services: 
        dremio:
            image: dremio/dremio-oss:15.0.0
            ports: 
            - "9047:9047"
            - "31010:31010"
        postgres:
            image: postgres:12.2
            environment: 
            - "POSTGRES_PASSWORD=dalong"
            ports:
            - "5433:5432"
    // table sql
    CREATE TABLE myapps (
        id SERIAL PRIMARY KEY,
        username text,
        userage integer
    );
     
    INSERT INTO "public"."myapps"("id","username","userage")
    VALUES
    (1,E'dalong',22),
    (2,E'rong',3333),
    (3,E'app',100);
    • 创建vds
    CREATE VDS "demoapp"."myages2" AS
    SELECT 
        SUM(userage) total_ages,
        COUNT(*) user_count,
        username
    FROM pg.myapps
    GROUP BY username
    • 创建外部反射
    // pg 创建聚合表
    create table sourcereflection2 as 
    SELECT 
        SUM(userage) total_ages,
        COUNT(*) user_count,
        username
    FROM myapps
    GROUP BY username;
    // 修改数据支持外部反射
     
    ALTER DATASET "demoapp"."myages2" 
    CREATE EXTERNAL REFLECTION "external_users_by_username" 
    USING "pg"."sourcereflection2"
    • 访问效果

    说明

    当前外部反射不能在解决中看到,直接通过操作函数进行查看,同时我们可以通过系统内部的内存表查看状态sys.reflections,同时注意
    官方在实现外部反射的时候会进行vds 与外部发射表schema(字段以及类型的判断)目前数据类型的兼容处理上不是很方便,推荐结合
    pg arp 扩展中定义的数据类型进行处理,同时结合information schema 进行外部数据反射的创建,不然会很费事的。。。。

    参考资料

    https://docs.dremio.com/acceleration/creating-reflections/
    https://docs.dremio.com/rest-api/reflections/reflection/#refesh-statuses
    https://docs.dremio.com/deployment/query-non-iso-8859/

  • 相关阅读:
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale
    CodeForces 785B Anton and Classes
    CodeForces 785A Anton and Polyhedrons
    爱奇艺全国高校算法大赛初赛C
    爱奇艺全国高校算法大赛初赛B
    爱奇艺全国高校算法大赛初赛A
    EOJ 3265 七巧板
    EOJ 3256 拼音魔法
    EOJ 3262 黑心啤酒厂
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/15091855.html
Copyright © 2020-2023  润新知