Skip to content
Snippets Groups Projects
Commit 2d268596 authored by Tom Robinson's avatar Tom Robinson
Browse files

Merge branch 'master' of github.com:metabase/metabase into data_selector_icons

parents 39e8858b 3765bb3f
Branches
Tags
No related merge requests found
Showing
with 50 additions and 95 deletions
......@@ -2,9 +2,9 @@
# Overview
Metabase is an easy way to generate charts and dashboards, ask simple ad hoc queries without using SQL, and see detailed information about rows in your Database. You can set it up in under 5 minutes, and then give yourself and others a place to ask simple questions and understand the data your application is generating. It is not tied to any specific framework and can be used out of the box with minimal configuration.
Metabase is an easy way to generate charts and dashboards, ask simple ad hoc queries without using SQL, and see detailed information about rows in your Database. You can set it up in under 5 minutes, and then give yourself and others a place to ask simple questions and understand the data your application is generating. It is not tied to any specific framework and can be used out of the box with minimal configuration.
With a bit of tagging and annotation of what the tables and fields in your database mean, it can be used to provide a rich, humanized version analytics server and administration interface.
With a bit of tagging and annotation of what the tables and fields in your database mean, it can be used to provide a rich, humanized version analytics server and administration interface.
For more information check out [www.metabase.com](http://www.metabase.com)
......@@ -15,22 +15,22 @@ Security is very important to us. If discover any issue regarding security, plea
# Installation
You can run Metabase in two primary ways, as a docker container or as a jar.
You can run Metabase in two primary ways, as a docker container or as a jar.
## Docker
To run Metabase via Docker, just type
docker run -d -p 3000:3000 —name metabase metabase/metabase:v0.12.0
## JVM Jar
To run the jar you will need to have a Java Runtime installed. As a quick check to see if you system already has one, try
To run the jar you will need to have a Java Runtime installed. As a quick check to see if you system already has one, try
java -version
If you see something like
If you see something like
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
......@@ -38,21 +38,21 @@ If you see something like
you are good to go. Otherwise, download the Java Runtime Environment at http://java.com/
Go to the [Metabase Download Page](http://www.metabase.com/download) and download the current build. Place the downloaded jar into a newly created directory (as it will create some files when it is run), and run it on the command line:
Go to the [Metabase Download Page](http://www.metabase.com/start/) and download the current build. Place the downloaded jar into a newly created directory (as it will create some files when it is run), and run it on the command line:
java -jar metabase.jar
java -jar metabase.jar
Now, open a browser and go to `http://localhost:3000` , and you will be asked a set of questions that will set up a user account, and then you can add a database connection. For this to work you will need to get some information about which database you want to connect to, such as the Host Name and Port that it is running on, the Database Name and the User and Password that you will be using.
Now, open a browser and go to `http://localhost:3000` , and you will be asked a set of questions that will set up a user account, and then you can add a database connection. For this to work you will need to get some information about which database you want to connect to, such as the Host Name and Port that it is running on, the Database Name and the User and Password that you will be using.
Once you have added this connection, you will be taken into the app and you'll be ready to ask your first question.
Once you have added this connection, you will be taken into the app and you'll be ready to ask your first question.
For a more detailed walkthrough, check out our [Getting Started](docs/getting-started/start.md) guide.
# Contributing
To get started with a development installation of the Query Server and learn more about contributing, please follow the instructions at our [Developers Guide](docs/developers-guide.md).
To get started with a development installation of the Query Server and learn more about contributing, please follow the instructions at our [Developers Guide](docs/developers-guide.md).
# Extending and Deep Integrations
......@@ -65,7 +65,7 @@ Metabase also allows you to hit our Query API directly from Javascript to integr
# License
Unless otherwise noted, all Metabase Report Server source files are made available under the terms of the GNU Affero General Public License (AGPL).
Unless otherwise noted, all Metabase Report Server source files are made available under the terms of the GNU Affero General Public License (AGPL).
See individual files for details.
......
......@@ -15,7 +15,7 @@ use Metabase::Util;
use constant JRE_DEST => getcwd() . '/OSX/Metabase/jre';
use constant JRE_HOME => trim(`/usr/libexec/java_home`) . '/jre';
use constant UBERJAR_SRC => getcwd() . '/target/uberjar/metabase-standalone.jar';
use constant UBERJAR_SRC => getcwd() . '/target/uberjar/metabase.jar';
use constant UBERJAR_DEST => getcwd() . '/OSX/Resources/metabase.jar';
use constant ENABLE_JAR_PACKING => 0;
......
......@@ -19,4 +19,4 @@ if [ "$MAILGUN_SMTP_LOGIN" ]; then
export MB_EMAIL_SMTP_PASSWORD="$MAILGUN_SMTP_PASSWORD"
fi
exec java $JAVA_OPTS -jar ./target/uberjar/metabase-standalone.jar
exec java $JAVA_OPTS -jar ./target/uberjar/metabase.jar
......@@ -12,7 +12,7 @@ RUN apt-get update && \
# include our local build in the image
# TODO: eventually we could probably set this up to download the jar file dynamically
COPY ./metabase-standalone.jar /app/
COPY ./metabase.jar /app/
COPY ./run_metabase.sh /app/
RUN chmod 755 /app/run_metabase.sh
......
......@@ -16,4 +16,4 @@ export MB_DB_PORT=$RDS_PORT
# TODO: dynamically determine type, probably using the port number
export MB_DB_TYPE=postgres
java -Dlogfile.path=target/log -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -jar /app/metabase-standalone.jar
java -Dlogfile.path=target/log -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -jar /app/metabase.jar
......@@ -38,9 +38,9 @@ upload_release_artifacts() {
}
mk_release_artifacts() {
METABASE_JAR_NAME="metabase-standalone.jar"
METABASE_JAR_NAME="metabase.jar"
RELEASE_TYPE="aws-eb-docker"
RELEASE_JAR_FILE_NAME=${METABASE_JAR_NAME%-standalone.jar}-$BRANCH-$DATE-$COMMITISH.jar
RELEASE_JAR_FILE_NAME=${METABASE_JAR_NAME%.jar}-$BRANCH-$DATE-$COMMITISH.jar
RELEASE_ZIP_FILE_NAME="$1"
UBERJAR_DIR="${PROJECT_ROOT}/target/uberjar"
......
......@@ -9,14 +9,12 @@ This guide is for advanced users and those who will be setting up and maintainin
#### [Operations Guide](operations-guide/start.md)
This guide contains more detailed information about how to install Metabase for production use. It covers topics like SSL termination, deploying via Docker Containers vs. Jars, as well as the tradeoffs involved.
## For Developers
#### [Developers Guide](developers-guide.md)
This guide covers how to contribute back to the Metabase open source project. It includes setting up a development environment, running tests, and the contribution and product process Metabase follows.
#### [API Reference](uberdoc.html)
This is a comprehensive reference for all server functions in our codebase.
## Reference
......
......@@ -41,4 +41,4 @@ You should see this form:
---
## Next: editing your metadata
Taking just a few minutes to edit and add info to your database’s metadata can greatly enhance your experience with Metabase. Let’s learn [how to edit your metadata](03-data-model.md).
Taking just a few minutes to edit and add info to your database’s metadata can greatly enhance your experience with Metabase. Let’s learn [how to edit your metadata](03-metadata-editing.md).
## Metadata Editing
*Note: For an in-depth description of Metabase's understanding of metadata and how it uses it, check out our [Metadata Guide](metadata-guide.md).*
### What is metadata?
Metadata is data about other data. It's data that tells you about the data found in your database. For example, we could label a field that looks like just a bunch of numbers with the label “latitude,” which now gives that information additional meaning.
### Editing your database’s metadata
First off, make sure you’re in the Admin Panel. Then click on **Metadata** for the top menu.
In the column on the left, you can choose which database you’re viewing, and then select the table whose metadata you want to view and edit.
You can edit metadata for two things: tables and fields.
### Metadata for tables
* You can change the display name of a table by clicking and typing in the field where its name is displayed. This doesn’t change the *actual* name of the table in your database.
* Add descriptions to tables to let people know type of data a table contains and how it can be used. Descriptions are displayed in the data model reference panel in Metabase, which you can view by clicking the book icon in the top right of a new or saved question page.
* Tables can be set to Queryable or Hidden, controlling whether or not they’re accessible within Metabase.
### Metadata for fields
* Just like with tables, you can change the display name of your fields, and add descriptions to them so that other users will know what the field’s data represents. Descriptions are extra helpful when fields have values that are abbreviated or coded in a particular format.
* Metabase automatically attempts to classify your fields and assign them a type. If Metabase misclassified any fields, you can correct that here.
* The **Visibility** setting tells Metabase when and where you want a field to be displayed, or if you want it to be hidden.
* **Type** assigns a field a high-level category, and changes how the field can be used within Metabase. For example, only Metric fields can be added or averaged.
* **Details** let you give fields a more specific type, which enables special functionality. For example, if you set fields to Latitude and Longitude, you’ll be able to visualize the results from that table as a map. This is also where you can set a field to be a primary or foreign key of a table.
---
## Next: managing users
Let’s learn how to add, remove, and edit users in the [managing users section](04-managing-users.md).
\ No newline at end of file
## Metadata Guide
### This guide will teach you:
* What kinds of metadata Metabase stores and uses
* How Metabase analyzes your database
* How to improve the data model by adding your own knowledge to the auto-generated model
### Overview
## Metadata Editing
Metabase allows you to optionally annotate the data in your database or data warehouse. These annotations provide Metabase with an understanding of what the data actually means, and allows it to more intelligently process and display it for you. We currently allow you to annotate tables and columns.
### What is metadata?
Metadata is data about other data. It's information that tells you about the data found in your database. For example, we could label a field that looks like just a bunch of numbers with the label “latitude,” which would give that field additional meaning and context.
All of these settings are editable via the **Metadata** page within the **Admin Panel**.
Metabase allows you to optionally annotate the data in your database, which provides Metabase with an understanding of what the data actually means and allows it to more intelligently process and display it for you.
### Tables
### Editing your database’s metadata
All of these settings are editable via the **Metadata** page within the **Admin Panel**. To get there, click the dropdown in the top right of Metabase that shows your initials, and select **Admin Panel**. Then click on **Metadata** from the top menu.
In the column on the left, you can choose which database to view, and then select the table whose metadata you want to view and edit.
You can edit metadata for two things: tables and fields.
### Metadata for tables
Tables can either be set to **Queryable** or **Hidden**. Queryable tables can be selected from the question builder, and all of the data in the table can be displayed (unless certain fields are excluded — more on that below).
Hidden tables can’t be selected from the query builder, and their data can’t be accessed.
You can also change the name and description of your tables here. Note that the underlying database won’t be affected — this will only change the name of the table while you’re viewing it within Metabase.
You can also change the name and description of your tables here. Note that the underlying database won’t be affected — this will only change the name of the table while you’re viewing it within Metabase. Add descriptions to tables to let people know type of data a table contains and how it can be used. Descriptions are displayed in the data model reference panel in Metabase, which you can view by clicking the book icon in the top right of a new or saved question page.
If you ever want to see the original underlying schema for a given table, just click the **Show original schema** toggle in the top-right of the screen.
If you ever want to see the underlying original schema for a given table, just click the **Show original schema** toggle in the top-right of the screen.
### Fields
### Metadata for fields
A field is a representation of either a column (when using a SQL based database, like PostgreSQL) or a field in a document (when using a document- or JSON-based database like MongoDB).
A field is a representation of either a column (when using a SQL based database, like PostgreSQL) or a field in a document (when using a document- or JSON-based database like MongoDB). Metabase automatically attempts to classify your fields and assign them a type. If Metabase misclassified any fields, you can correct that here.
There are several pieces of metadata you can edit per field: name, description, visibility, type, and details:
......@@ -32,7 +35,7 @@ Clicking on the name of the field allows you to change how the field name is dis
#### Description
This is a human-readable description of what the field is and how it is meant to be used. Any caveats about interpretation can go here as well.
This is a human-readable description of what the field is and how it is meant to be used. Any caveats about interpretation can go here as well. Descriptions are extra helpful when fields have values that are abbreviated or coded in a particular format.
#### Visibility
......@@ -42,7 +45,7 @@ Similarly, if you have sensitive or irrelevant fields, you can set them to **Do
#### Types
A field can get assigned one of four basic types:
**Type** assigns a field a high-level category, and changes how the field can be used within Metabase. For example, only Metric fields can be added or averaged. A field can be assigned one of four basic types:
* Metric — a metric is a number that you expect to plot, sum, take averages of, etc. You could think of it as anything that would end up being plotted on the y-axis of a graph.
* Dimension — This is any field that you expect to use as an x-axis of a graph or as part of a pivot table. Anything that you could group your results by could be called a dimension, such as dates.
......@@ -51,7 +54,9 @@ A field can get assigned one of four basic types:
#### Details
A field’s detailed type is used to determine how to display it as well as providing information to users of the data about the underlying meaning. For example, by marking fields in a table as Latitude and Longitude, you allow the table to be used to create pin and heat maps. Similarly, marking a field as a URL allows users to click on it and go to that URL.
A field’s detailed type is used to determine how to display it, and can also give certain types of fields special functionality. For example, by marking fields in a table as Latitude and Longitude, you allow the table to be used to create pin and heat maps. Similarly, marking a field as a URL allows users to click on it and go to that URL.
This is also where you can set a field to be a **primary key** or **foreign key** of a table.
Common detailed types include:
......@@ -75,4 +80,10 @@ Common detailed types include:
This is also where you set mark special fields in a table:
* Entity Key — the field in this table that uniquely identifies each row. Could be a product ID, serial number, etc.
* Entity Name — different from the entity key, this is the field whose heading represents what each row in the table *is*. For example, in a Users table, the User column might be the entity name.
* Foreign Key — this is a field in this table that uniquely identifies a *row* in another table. In other words, this is a field that, almost always, points to the primary key of another table. For example, in a Products table, you might have a Customer ID field that points to a Customers table, where Customer ID is the primary key.
\ No newline at end of file
* Foreign Key — this is a field in this table that uniquely identifies a *row* in another table. In other words, this is a field that, almost always, points to the primary key of another table. For example, in a Products table, you might have a Customer ID field that points to a Customers table, where Customer ID is the primary key.
---
## Next: managing users
Let’s learn how to add, remove, and edit users in the [managing users section](04-managing-users.md).
\ No newline at end of file
......@@ -6,7 +6,7 @@ Are you in charge of managing Metabase for your organization? Then you're in the
* [Connect Metabase to databases in your organization](01-managing-databases.md)
* [Enable features that send email (SMTP)](02-setting-up-email.md)
* [Edit your data model](03-data-model.md)
* [Edit your database metadata](03-metadata-editing.md)
* [Manage user accounts](04-managing-users.md)
* [Configure settings](06-configuration-settings.md)
......
......@@ -6,8 +6,6 @@
> How to contribute back to the Metabase project
[![Circle CI](https://circleci.com/gh/metabase/metabase-init.svg?style=svg&circle-token=3ccf0aa841028af027f2ac9e8df17ce603e90ef9)](https://circleci.com/gh/metabase/metabase-init)
# Install Prerequisites
These are the set of tools which are required in order to complete any build of the Metabase code. Follow the links to download and install them on your own before continuing.
......@@ -191,7 +189,7 @@ Will give you a list of out-of-date dependencies.
Once's this repo is made public, this Clojars badge will work and show the status as well:
[![Dependencies Status](http://jarkeeper.com/metabase/metabase-init/status.png)](http://jarkeeper.com/metabase/metabase-init)
[![Dependencies Status](http://jarkeeper.com/metabase/metabase-init/status.png)](http://jarkeeper.com/metabase/metabase)
## Documentation
......@@ -204,8 +202,6 @@ Start up an instant cheatsheet for the project + dependencies by running
#### Marginalia
Available at http://metabase.github.io/metabase-init/.
You can generate and view documentation with
lein marg
......
## ETL Guide
* Normalized vs denormalized data
* Database Views for fun and profit
* ETL jobs vs database views
* write load vs read load
* performance implications
* when to use views
* how to create them
* MySQL
* PostgreSQL
* Common examples
* tables with an is_deleted flag
* user table with a roles field
* test accounts + data
* Dealing with events
* pain on read vs pain on write
* deciding what to collect
* suggested event format
* enriching events
* preparing for cohort analysis
docs/operations-guide/images/EBAddResources.png

27.6 KiB

docs/operations-guide/images/EBAppInfo.png

31.3 KiB

docs/operations-guide/images/EBAppVersion.png

72.8 KiB

docs/operations-guide/images/EBComplete.png

153 KiB

docs/operations-guide/images/EBConfigDetails.png

99.9 KiB

docs/operations-guide/images/EBEnvInfo.png

44.5 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment