Periscope Data Documentation

Connecting to Periscope

First Time Connecting

Connection Definitions

Common Connection Errors

Private Network SSH Tunnels



Getting Started

Keyboard Shortcuts

Charts & Dashboards

Chart Overview

Chart Options

Dashboard Overview

Refresh Mechanics

Organizing Charts

Organizing Dashboards

Table-like Charts

Table Overview

Cohort Grids

Pivot Tables

Graph-like Charts

Overview & General Settings

Chart Types and Settings

Mixing Chart Types

Map Charts

Map Chart Overview


Clusters and Bubbles

Satellite Maps


Other Charts & Customizations

Pie Charts

Image Charts

Chart Annotations

Site Administration

Adding Users

Removing Users

User Types

User Groups

Two-Factor Authentication

Managing User Permissions

Dashboard Permissions

Site Preferences

Query Management

Color Themes

Dashboard Refresh Management

Usage Data

Periscope Cache

Caching Strategies

Querying the Periscope Cache

Cross-Database Joins

CSV Upload

Materializing Views

SQL Formatters

Using SQL Formatters

Composing SQL Formatters

Dollars and Percentages

Time Zone Formatters

Date Aggregation

Date Parts

Basic Filters

Custom Filters

Date Range Filters

Aggregation Filter

Adding, Moving, and Hiding Filters

Advanced Filters

Default Filters


Parent-Child Filters

Matching Filter Values

Time Zone Conversions

Direct Replacement

User Friendly Names


SQL Views

Joining to Views

More SQL Tools

SQL Snippets

Parameterized SQL Snippets

SQL Alerts

Automatic Joins

Version History

Sharing and Embedding

Sharing Dashboards Externally

Email Reports

Easy Embedding

Embed API

Embed API Options

CSV Download

Public CSV URL

Slack API

Slack Linking Reports

Data Management

Adding and Deleting Datasource

Spaces: Data-Level Permissions

Improving Query Throughput

Revoking Table Permissions

Salesforce Datasource

Schema Browser

SSO Integrations




Google Apps

CSV Upload

With CSV Upload, a CSV may be uploaded into a View and then selected out of that View in any chart.

Note: CSV Upload functionality is only available with the cache add-on, and allows for up to 50MB of data to be uploaded. For the best experience, we recommend using CSV's 10MB or less.

1. Uploading a CSV

To get started, open the CSVs menu in the sidebar and click on the green plus-sign.

Once the upload menu is open, drag the CSV file into the corresponding area or click "Browse" to choose the file from a dialog.

CSVs must have a header row. The names in the CSV's header row will become the column names in the view. Because the CSVs will be stored on Periscope's Redshift cache, they must adhere to Redshift's naming convention:

  • Contain only ASCII letters, digits, underscore characters (_), or dollar signs ($).
  • Begin with an alphabetic character or underscore character. Subsequent characters may include letters, digits, underscores, or dollar signs.
  • Be between 1 and 127 characters in length, not including quotes for delimited identifiers.
  • Contain no quotation marks and no spaces.
  • Not be a reserved SQL key word.

Additional information can be found here.

2. Naming a CSV View

Once the View has been successfully uploaded, the user can name the CSV by editing the header that is titled 'Untitled CSV View' by default.

Note: Once a View is saved, it cannot be renamed, and the user will be required to delete the view and rename a new upload of the CSV.

3. Selecting From a CSV-Based View

Once the View has been saved and cached, selecting from the new View can be accomplished in the same way as selecting from SQL-based views, like so:

select * from [my_view]

Using the new "original_pokemon" view to compute base experience and speed:

4. Joining to a CSV-Based View

Joining to a CSV Upload is similar to a cross-database join and requires all tables in the query to be cached.