Flash¶
Connecting to Depot using Flash Service¶
Prerequisites¶
- Flash Service: Ensure you have a running flash service.
name: flash-service-99
version: v1
type: service
tags:
- service
description: flash service
workspace: public
service:
servicePort: 5433
replicas: 1
logLevel: info
compute: runnable-default
resources:
requests:
cpu: 1000m
memory: 1024Mi
stack: flash+python:2.0
stackSpec:
datasets:
- address: dataos://icebase:sales360/f_sales #view
name: sales
- address: dataos://icebase:sales360/customer_data_master
name: customer_data_master
- address: dataos://icebase:sales360/site_check1
name: site_check1
- address: dataos://icebase:sales360/product_data_master
name: product_data_master
init:
- create or replace table f_sales as (select * from sales) #table
- create or replace table m_customers as (select * from customer_data_master)
- create or replace table m_sites as (select * from site_check1)
- create or replace table m_products as (select * from product_data_master)
How Does This Process Work?¶
The flow of Flash operates as follows:
Data Loading: The datasets attribute specifies the depot address of the source data to be loaded into Flash. A dataset name is also provided, which Flash uses to generate a view of the source data.
View Creation: Flash creates a view based on the assigned name, allowing for interaction with the source data without directly querying it.
Table Creation: Specific columns from the generated view can be selected to define tables for further operations.
Usage in Lens Model(SQL): The tables created through the init
attribute are used in SQL queries within Lens.
For example, in the manifest referenced, the f_sales
table is first loaded from the source, and a view named sales
is created. A table called f_sales
is then defined using this sales view. This table is subsequently referenced in SQL models within Lens.
Note Flash directly uses the deployment.yml manifest file to create a Lens.
Deployment Manifest File¶
version: v1alpha
name: "lens-flash-test-99"
layer: user
type: lens
tags:
- lens
description: A sample lens that contains three entities, a view and a few measures for users to test
lens:
compute: runnable-default
secrets: # Referred Instance-secret configuration (**mandatory for private code repository, not required for public repository)
- name: githubr # Referred Instance Secret name (mandatory)
allKeys: true # All keys within the secret are required or not (optional)
source:
type: flash # minerva, themis and depot
name: flash-service-99 # flash service name
repo:
url: https://github.com/iamgroot/Lens
lensBaseDir: Lens/source/flash/model # location where lens models are kept in the repo
syncFlags:
- --ref=main
api:
replicas: 1
logLevel: debug
envs:
LENS2_SOURCE_WORKSPACE_NAME: public
LENS2_SOURCE_FLASH_PORT: 5433
resources: # optional
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 2000m
memory: 2048Mi
worker:
replicas: 1
logLevel: debug
envs:
LENS2_SOURCE_WORKSPACE_NAME: public
LENS2_SOURCE_FLASH_PORT: 5433
resources: # optional
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 6000m
memory: 6048Mi
router:
logLevel: info
envs:
LENS2_SOURCE_WORKSPACE_NAME: public
LENS2_SOURCE_FLASH_PORT: 5433
resources: # optional
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 6000m
memory: 6048Mi
iris:
logLevel: info
envs:
LENS2_SOURCE_WORKSPACE_NAME: public
LENS2_SOURCE_FLASH_PORT: 5433
resources: # optional
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 6000m
memory: 6048Mi
Key Configurations¶
Source
¶
-
type
The source section specifies that Flash is used as the data source (type: flash). This indicates that data for the Lens model will be loaded from the Flash service. -
name
: The Flash service is identified by the name flash-service-99. This name should match the deployed Flash service used for data ingestion.
envs
¶
The following environment variables are defined under multiple components, including api, worker, router, and iris
Key Variables
-
LENS2_SOURCE_WORKSPACE_NAME
It refers to the workspace where the Flash service is deployed. -
LENS2_SOURCE_FLASH_PORT
The port number5433
is specified for the Flash service. This port is used by Lens to establish communication with the Flash service. It ensures that all components—API, worker, router, and iris—can access the Flash service consistently.