Skip to content

How to correctly join diffent data sources on cube core ?Β #9346

@ClorisYT

Description

@ClorisYT

Hey all πŸ‘‹, I want to ask about
I have a cube orders that is based on a Clickhouse database, and a cube users that is based on a Postgres database.
I also use Cube Core on Docker Compose.

cubes:
  - name: rollup_pg
    data_source: default
    sql_table: users
    
    pre_aggregations:
      - name: users_rollup
        dimensions:
          - CUBE.id
          - CUBE.name
          
    measures:
      - name: count
        type: count
        
    dimensions:
      - name: id
        sql: id
        type: number
        primary_key: true

      - name: first_name
        sql: first_name
        type: string

      - name: last_name
        sql: last_name
        type: string
        
      - name: name
        sql: "{CUBE}.first_name || {CUBE}.last_name"
        type: string
        
        
    
  - name: rollup_ch
    data_source: datasource1
    sql_table: rollup
    
    joins:
      - name: rollup_pg
        relationship: many_to_one
        sql: "{CUBE.user_id} = {rollup_pg.id}"
        
        
    dimensions:
      - name: id
        sql: id
        type: number
        primary_key: true

      - name: user_id
        sql: user_id
        type: number
        public: false

      - name: status
        sql: status
        type: string

      - name: created_at
        sql: "{CUBE}.created_at::TIMESTAMP"
        type: time

      - name: completed_at
        sql: "{CUBE}.completed_at::TIMESTAMP"
        type: time

    measures:
      - name: count
        type: count



    pre_aggregations:
      - name: orders_rollup
        measures:
          - CUBE.count
        dimensions:
          - CUBE.user_id
          - CUBE.status
          - CUBE.id
          
        time_dimension: CUBE.created_at
        granularity: day
        indexes:
          - name: category_index
            columns:
              - id
             
 
      - name: orders_with_users_rollup
        type: rollup_join
        measures:
          - CUBE.count
        dimensions:
          - rollup_pg.name
        rollups:
          - rollup_pg.users_rollup
          - CUBE.orders_rollup

Both of these cubes have an id column, and I would like to be able to join them. And see the doc: https://cube.dev/docs/reference/data-model/pre-aggregations#rollup_join, but it doesn't work.

the error message:
Internal: Error during planning: Can't find index to join table dev_pre_aggregations.rollup_ch_orders_rollup_nnwdfyun_sfb4yeag_1jt7g7l on rollup_ch__user_id. Consider creating index: CREATE INDEX rollup_ch_orders_rollup_nnwdfyun_sfb4yeag_1jt7g7l_rollup_ch__user_id ON dev_pre_aggregations.rollup_ch_orders_rollup_nnwdfyun_sfb4yeag_1jt7g7l (rollup_ch__user_id)

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionThe issue is a question. Please use Stack Overflow for questions.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions