Skip to content

Commit

Permalink
Developer guide - index patterns key concepts (#96017)
Browse files Browse the repository at this point in the history
* add index patterns key concepts
  • Loading branch information
mattkime authored Aug 15, 2021
1 parent 2ee11db commit 2e68ce1
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 461 deletions.
Binary file added dev_docs/assets/data_view_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions dev_docs/key_concepts/data_views.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
id: kibDataViewsKeyConcepts
slug: /kibana-dev-docs/data-view-intro
title: Data Views
summary: Data views are the central method of defining queryable data sets in Kibana
date: 2021-08-11
tags: ['kibana','dev', 'contributor', 'api docs']
---

*Note: Kibana index patterns are currently being renamed to data views. There will be some naming inconsistencies until the transition is complete.*

Data views (formerly Kibana index patterns or KIPs) are the central method of describing sets of indices for queries. Usage is strongly recommended
as a number of high level <DocLink id="kibBuildingBlocks" text="building blocks"/> rely on them. Further, they provide a consistent view of data across
a variety Kibana apps.

Data views are defined by a wildcard string (an index pattern) which matches indices, data streams, and index aliases, optionally specify a
timestamp field for time series data, and are stored as a <DocLink id="kibDevDocsSavedObjectsIntro"
text="saved object"/>. They have a field list which comprises all the fields in matching indices plus fields defined specifically
on the data view via runtime fields. Schema-on-read functionality is provided by data view defined runtime fields.

![image](../assets/data_view_diagram.png)



The data view API is made available via the data plugin (`data.indexPatterns`, soon to be renamed) and most commonly used with <DocLink id="kibDevTutorialDataSearchAndSessions" section="high-level-search" text="SearchSource" />
(`data.search.search.SearchSource`) to perform queries. SearchSource will apply existing filters and queries from the search bar UI.

Users can create data views via [Data view management](https://www.elastic.co/guide/en/kibana/current/index-patterns.html).
Additionally, they can be created through the data view API.

Data views also allow formatters and custom labels to be defined for fields.

86 changes: 86 additions & 0 deletions dev_docs/tutorials/data_views.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
id: kibDevTutorialDataViews
slug: /kibana-dev-docs/tutorials/data-views
title: Data views API
summary: Data views API
date: 2021-08-11
tags: ['kibana', 'onboarding', 'dev', 'architecture']
---

*Note: Kibana index patterns are currently being renamed to data views. There will be some naming inconsistencies until the transition is complete.*

### Data views API

- Get list of data views
- Get default data view and examine fields
- Get data view by id
- Find data view by title
- Create data view
- Create data view and save it
- Modify data view and save it
- Delete data view

#### Get list of data view titles and ids

```
const idsAndTitles = await data.indexPatterns.getIdsWithTitle();
idsAndTitles.forEach(({id, title}) => console.log(`Data view id: ${id} title: ${title}`));
```

#### Get default data view and examine fields

```
const defaultDataView = await data.indexPatterns.getDefault();
defaultDataView.fields.forEach(({name}) => { console.log(name); })
```

#### Get data view by id

```
const id = 'xxxxxx-xxx-xxxxxx';
const dataView = await data.indexPatterns.get(id);
```

#### Find data view by title

```
const title = 'kibana-*';
const [dataView] = await data.indexPatterns.find(title);
```

#### Create data view

```
const dataView = await data.indexPatterns.create({ title: 'kibana-*' });
```

#### Create data view and save it immediately

```
const dataView = await data.indexPatterns.createAndSave({ title: 'kibana-*' });
```

#### Create data view, modify, and save

```
const dataView = await data.indexPatterns.create({ title: 'kibana-*' });
dataView.setFieldCustomLabel('customer_name', 'Customer Name');
data.indexPatterns.createSavedObject(dataView);
```

#### Modify data view and save it

```
dataView.setFieldCustomLabel('customer_name', 'Customer Name');
await data.indexPatterns.updateSavedObject(dataView);
```

#### Delete index pattern

```
await data.indexPatterns.delete(dataViewId);
```

### Data view HTTP API

Rest-like HTTP CRUD+ API - [docs](https://www.elastic.co/guide/en/kibana/master/index-patterns-api.html)
Loading

0 comments on commit 2e68ce1

Please sign in to comment.