zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    服务返返回状态码详解
    LeetCode#28 Implement strStr()
    LeetCode#58 Length of Last Word
    LeetCode#66 Plus One
    spooling技术
    文件的打开与关闭
    DMA方式与通道方式
    中断向量、向量中断、向量地址
    中断响应优先级和中断处理优先级
    I/O接口
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/15091855.html
Copyright © 2011-2022 走看看