Giter Site home page Giter Site logo

psteiwer / analyzethis Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 6.0 14.88 MB

Easily transform a CSV file/Table/SQL query into a personalized preview of DeepSee/InterSystems IRIS BI

License: MIT License

ObjectScript 99.63% Dockerfile 0.37%
cacheobjectscript-udl intersystems-deepsee intersystems analytics business-intelligence intersystems-iris

analyzethis's Introduction

AnalyzeThis

After selecting a Data Source (CSV file, Caché Class, or SQL Query), your data is easily and quickly transformed into a personalized preview of DeepSee

Accessing

Once installation is complete, a new "Analyze This" Link will be added to the User Portal. The User Portal can be found from the Management Portal -> Analytics -> User Portal

Usage

Provide a Data Source (CSV file, Caché Class, or SQL Query) and assign dimensions/measures as necessary. Once ready, click the import button. At this point, a new Caché class is created based on your Data Source and the data is imported. This new class is used as the source for the DeepSee cube. A DeepSee cube is also generated based on the properties in the source class. Once the cube is created and the records are built, a sample dashboard can be viewed. A scoring system is used to evaluate and rank the possible charts and tables that are displayed on this dashboard. After getting a visual idea of what DeepSee can offer, users can begin exploring the model within Architect or the data within Analyzer.

Installation

  1. Use the Download ZIP option for this project
  2. Extract the files and copy path
    • This is the path to the directory that contains README.md and LICENSE
  3. Open terminal and ZN to desired namespace
  4. Run the following commands:
   Set path="PATH FROM STEP 2"
   Do $system.OBJ.Load(path_"/AnalyzeThis/Installer.cls","ck")
   Do ##class(AnalyzeThis.Installer).RunInstaller(path)
  1. From the Management Portal, navigate to DeepSee/Analytics->User Portal
    • Find new "AnalyzeThis" Link with custom Cover Image

analyzethis's People

Contributors

asinay avatar evshvarov avatar psteiwer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

analyzethis's Issues

Accept $h time formats

$h is not a date format option on the property check page, this should be made available

Rows are silently skipped if they contain non-numeric data for an integer measure

If a row in a source file contains non-numeric data for a field that is being used as an integer measure, that row is not included in the generated source table (and therefore isn't included in the cube either). The Import Data dialog gives no indication that any errors occurred.

The following source data from https://www.baseball-reference.com/teams/BOS/ reproduces this issue when the "GB" (games back) column is included as an integer measure - 19 rows are skipped because they contain "--" to represent 0 in that field:
redsox_seasons.csv

Minor enhancement request to the AnalyzeThis installation process

It would be nice to be able to install AnalyzeThis using the following structure:

Step 0: Download the zip file and extract it to
Step 1: s path="\AnalyzeThis-master"
Step 2: do $system.OBJ.Load(path_"/AnalyzeThis/Installer.cls","ck")
Step 3: do ##class(AnalyzeThis.Installer).RunInstaller(path)

This way, you can copy and paste steps 2 and 3.
In addition to the Readme file change, the RunInstaller function will need to add a path parameter.

Import on IRIS 2019.3 CE doesn't work

Imported the file which goes with repo - inpatient.csv
Import never ends.
IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2019.3 (Build 309U) Wed Sep 11 2019 16:20:03 EDT

Line breaks in cells do not work

If a cell has a line break in it, the Regex reading in the CSV file does not work properly and splits this cell into two CSV lines instead of ignoring the line break and treating it as data

UnitTests.TestRegexLine.TestCRLFadv fails

No link after install

Installed via zpm on a mac, IRIS 2019.34, but cannot see any link in the analytics user portal. Install reported no errors and AnalyzeThis_ThirdParty.js is in the csp/user/ directory.

I'm not really familiar with Zen so not sure how it loads js files, but inspecting the loading in developer tools in Chrome it looks like that is just not happening

Update footer buttons

The UI is now separate from the generate methods. Previously the generate methods were with the UI and they updated the buttons depending on what was generated. In particular, the show scorecard button no longer appears even when a scorecard is generated. I also believe that the dashboard button does not work. The footer buttons need to be evaluated and possibly refactored

Dates can be imported as 19XX instead of 20XX

When a date uses MM/DD/YY format, the system assumes it is 19YY instead of 20YY. Perhaps there should be two options to replace the current MM/DD/[YY]YY with:
MM/DD/19YY or
MM/DD/20YY
using 20YY as the default.

Uniqueness checking not correct

I am getting this error while trying to test:

First 16 characters of CubeName must be unique from existing CubeNames. Inpatients is not unique from Inpatients2

Handle null column values

Trying to import a "bad csv file" with null headers causes an error. This is the most common "bad csv file" issue I have seen.

If an empty column header is detected, we should ignore that column. If there is a row with data in that column, we should ignore the row. This generally happens because a row is formatted incorrectly and a single cell's data is split across more than 1 cell. This shifts the rest of the cells over and will create a new column if there is data in the last column

Add timestamp support

Currently, %DeepSee.WizardUtils does not handle "TIMESTAMP" properties. Once this is implemented, AnalyzeThis can take advantage

Column with SQLReserved word causes listing error

When trying to view a listing, I am seeing this error:
ERROR #5540: SQLCODE: -1 Message: ( expected, , found^ SELECT TOP ? ID , DATE , (4)

The following SQL was generated:
SELECT TOP 1000 ID, date, location, newcases, newdeaths, totalcases, totaldeaths FROM AnalyzeThis_Generated.coronavirus source WHERE source.%ID IN (SELECT _DSsourceId FROM AnalyzeThis_Generated_coronavirusCube.Listing WHERE _DSqueryKey = 'en1665844046')

This is because date is a reserved word and should be escaped

Store line limit for refresh

Currently line limit is not stored so refreshing the data from the UI will pull in all data from the data source

Clean up Score calculations in GenerateSampleDashboards

AnalyzeThis.Dashboard.AutoPivot:GenerateSampleDashboards() contains code that logs the "scores" of different factors. If these scores are then within a certain range, a pre-defined widget type is used and it dynamically adds the factors with correct scores.

At this time, adding new chart types and modifying factors is not a simple process. This process should be broken down into easier to manage stages.

dev - Import button always disabled

It appears that the status is always empty in AnalyzeThis.UI.CSVImport:drawDone(), this is causing the Import button to always be disabled

Replace Cube Info With Metadata

After the import and generation is completed, there is an option to view some cube info. This includes some null statistics. This should be replaced with the full metadata table information

é imported as é

Imported a value of Saint Barthélemy, it was imported as Saint Barthélemy. This is how the string appears in the data global

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.