真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Metabase學(xué)習(xí)教程:系統(tǒng)管理-4-創(chuàng)新互聯(lián)

序列化:在Metabase實(shí)例間遷移 如何使用Metabase的序列化功能將問(wèn)題、儀表板、集合、設(shè)置等從一個(gè)Metabase實(shí)例復(fù)制到新的Metabase實(shí)例。 Metabase序列化

序列化僅在商業(yè)版上可用(僅在自托管計(jì)劃上)。

創(chuàng)新互聯(lián)主營(yíng)城中網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app開(kāi)發(fā),城中h5微信小程序定制開(kāi)發(fā)搭建,城中網(wǎng)站營(yíng)銷(xiāo)推廣歡迎城中等地區(qū)企業(yè)咨詢(xún)

許多客戶(hù)在遷移到本地部署的商業(yè)版時(shí),需要上載預(yù)定義的問(wèn)題或儀表板,以設(shè)置新的Metabase實(shí)例或新的數(shù)據(jù)庫(kù)連接。本文將介紹如何:

  1. 創(chuàng)建一組默認(rèn)的問(wèn)題和儀表板。
  2. 導(dǎo)出那些儀表板。
  3. 將這些儀表板重新導(dǎo)入新實(shí)例。

具體來(lái)說(shuō),我們將使用dumploadMetabase中的命令序列化功能執(zhí)行第2步和第3步,再加上一點(diǎn)手動(dòng)管理導(dǎo)出的文件。

我們將使用Docker運(yùn)行我們的Metabase環(huán)境,并使用開(kāi)源PostgresSQL為了我們應(yīng)用程序數(shù)據(jù)庫(kù)。我們不建議使用默認(rèn)值H2用于生產(chǎn)的數(shù)據(jù)庫(kù)(H2隨Metabase一起提供,因?yàn)樗且粋€(gè)輕量級(jí)數(shù)據(jù)庫(kù),使用Metabase很容易讓用戶(hù)啟動(dòng)和運(yùn)行)

計(jì)劃

我們將創(chuàng)建一個(gè)Metabase實(shí)例(我們的原始環(huán)境),創(chuàng)建一個(gè)儀表板,并將該儀表板加載到一個(gè)新的Metabase實(shí)例(我們的目標(biāo)環(huán)境)中。計(jì)劃如下:

  1. 創(chuàng)建一個(gè)名為metanet的專(zhuān)用網(wǎng)絡(luò).
  2. 啟動(dòng)Metabase的兩個(gè)實(shí)例:origin和target.
  3. 在原始環(huán)境中創(chuàng)建儀表板和集合.
  4. 從源環(huán)境轉(zhuǎn)儲(chǔ)數(shù)據(jù).
  5. 將源轉(zhuǎn)儲(chǔ)加載到目標(biāo)環(huán)境中.
  6. 驗(yàn)證儀表板和集合是否已加載到目標(biāo)環(huán)境中.
先決條件

你需要Docker安裝在您的計(jì)算機(jī)上。

步驟1-創(chuàng)建專(zhuān)用網(wǎng)絡(luò)

要?jiǎng)?chuàng)建名為“metanet”的專(zhuān)用網(wǎng)絡(luò),請(qǐng)從您選擇的終端運(yùn)行以下命令:

docker network create metanet

您可以確認(rèn)網(wǎng)絡(luò)是用以下方式創(chuàng)建的:

docker network ls

網(wǎng)絡(luò)將有一個(gè)本地作用域和一個(gè)網(wǎng)橋驅(qū)動(dòng)程序。

第2步-啟動(dòng)Metabase的兩個(gè)實(shí)例

啟動(dòng)兩個(gè)稱(chēng)為origintarget(盡管你可以隨意命名這些環(huán)境)。請(qǐng)注意,我們使用--rm -d在創(chuàng)建這些Docker容器時(shí),當(dāng)您停止它們并在后臺(tái)運(yùn)行時(shí),它們都會(huì)被移除。請(qǐng)隨意更改這些標(biāo)志以修改該行為。

Origin環(huán)境

創(chuàng)建Postgres數(shù)據(jù)庫(kù):

docker run --rm -d --name postgres \

-p 5433:5432 \

-e POSTGRES_USER=metabase \

-e POSTGRES_PASSWORD=knockknock \

--network metanet \

 postgres:12

創(chuàng)建Metabase源實(shí)例,并將其連接到我們剛剛創(chuàng)建的Postgres數(shù)據(jù)庫(kù):

docker run --rm -d --name metabase-origin \

-p 5001:3000 \

-e MB_DB_TYPE=postgres \

-e MB_DB_DBNAME=metabase \

-e MB_DB_PORT=5432 \

-e MB_DB_USER=metabase \

-e MB_DB_PASS=knockknock \

-e MB_DB_HOST=postgres \

--network metanet \

 metabase/metabase-enterprise:v1.44.6

您可以檢查容器的日志以查看容器的進(jìn)度:

docker logs metabase-origin

一旦看到包含“Metabase初始化完成”的行,就可以打開(kāi)瀏覽器http://localhost:5001查看Metabase實(shí)例。

Target環(huán)境

設(shè)置目標(biāo)環(huán)境與此類(lèi)似。在我們的metanet網(wǎng)絡(luò)上,我們將設(shè)置一個(gè)Postgres數(shù)據(jù)庫(kù)作為我們的應(yīng)用程序數(shù)據(jù)庫(kù),然后在另一個(gè)Docker容器中啟動(dòng)Metabase的另一個(gè)實(shí)例。

注意以下更改:

  • Postgres(5434)和Metabase服務(wù)器(5002)的端口
  • 實(shí)例名稱(chēng):metabase-origin和metabase-target

應(yīng)用程序數(shù)據(jù)庫(kù):

docker run --rm -d --name postgres-target \

-p 5434:5432 \

-e POSTGRES_USER=metabase \

-e POSTGRES_PASSWORD=knockknock \

 --network metanet postgres:12

Metabase實(shí)例:

docker run --rm -d --name metabase-target \

-p 5002:3000 \

-e MB_DB_TYPE=postgres \

-e MB_DB_DBNAME=metabase \

-e MB_DB_PORT=5432 \

-e MB_DB_USER=metabase \

-e MB_DB_PASS=knockknock \

-e MB_DB_HOST=postgres-target \

--network metanet \

 metabase/metabase-enterprise:v1.44.6

在我們的Metabase實(shí)例完成初始化后,現(xiàn)在應(yīng)該有兩個(gè)Metabase環(huán)境啟動(dòng)并運(yùn)行:

  • metabase-origin?位于http://localhost:5001
  • metabase-target位于http://localhost:5002
將用戶(hù)添加到我們的metabase-origin環(huán)境

讓我們向metabase-origin實(shí)例添加一個(gè)管理帳戶(hù)和兩個(gè)基本用戶(hù)。

你可以手動(dòng)將用戶(hù)添加到Metabase環(huán)境(例如,在Metabase應(yīng)用程序中),但下面是一個(gè)快速bash腳本,它創(chuàng)建一個(gè)管理用戶(hù)(初始用戶(hù))和兩個(gè)基本用戶(hù):

#!/bin/sh

ADMIN_EMAIL=${MB_ADMIN_EMAIL:-admin@metabase.local}

ADMIN_PASSWORD=${MB_ADMIN_PASSWORD:-Metapass123}

METABASE_HOST=${MB_HOSTNAME}

METABASE_PORT=${MB_PORT:-3000}

echo "?? Waiting for Metabase to start"

while (! curl -s -m 5 http://${METABASE_HOST}:${METABASE_PORT}/api/session/properties -o /dev/null); do sleep 5; done

echo "😎 Creating admin user"

SETUP_TOKEN=$(curl -s -m 5 -X GET \

-H "Content-Type: application/json" \

http://${METABASE_HOST}:${METABASE_PORT}/api/session/properties \

| jq -r '.["setup-token"]'

)

MB_TOKEN=$(curl -s -X POST \

-H "Content-type: application/json" \

http://${METABASE_HOST}:${METABASE_PORT}/api/setup \

-d '{

"token": "'${SETUP_TOKEN}'",

"user": {

"email": "'${ADMIN_EMAIL}'",

"first_name": "Metabase",

"last_name": "Admin",

"password": "'${ADMIN_PASSWORD}'"

},

"prefs": {

"allow_tracking": false,

"site_name": "Metawhat"

}

}' | jq -r '.id')

echo -e "\n👥 Creating some basic users: "

curl -s "http://${METABASE_HOST}:${METABASE_PORT}/api/user" \

-H 'Content-Type: application/json' \

-H "X-Metabase-Session: ${MB_TOKEN}" \

-d '{"first_name":"Basic","last_name":"User","email":"basic@somewhere.com","login_attributes":{"region_filter":"WA"},"password":"'${ADMIN_PASSWORD}'"}'

curl -s "http://${METABASE_HOST}:${METABASE_PORT}/api/user" \

-H 'Content-Type: application/json' \

-H "X-Metabase-Session: ${MB_TOKEN}" \

-d '{"first_name":"Basic 2","last_name":"User","email":"basic2@somewhere.com","login_attributes":{"region_filter":"CA"},"password":"'${ADMIN_PASSWORD}'"}'

echo -e "\n👥 Basic users created!"

你需要安裝jq以處理此腳本中的JSON。將上述代碼另存為create_users.sh,并使其可執(zhí)行(chmod +x create_users.sh),然后運(yùn)行:

MB_HOSTNAME=localhost MB_PORT=5001 ./create_users.sh

當(dāng)您的?metabase-origin實(shí)例啟動(dòng),并且您的用戶(hù)已創(chuàng)建,打開(kāi)http://localhost:5001并以您創(chuàng)建的管理員用戶(hù)身份登錄。用戶(hù)ID為admin@metabase.local密碼是Metapass123.

您應(yīng)該看到Metabase的一個(gè)新實(shí)例(圖1)。

圖1。Metabase的新實(shí)例。

登錄后,激活許可證密鑰.

步驟3-在origin環(huán)境中創(chuàng)建儀表板和集合

我們需要一些應(yīng)用程序數(shù)據(jù)來(lái)導(dǎo)出,所以讓我們使用包括在Metabase中的示例數(shù)據(jù)庫(kù)?;蛘撸孧etabase為我們創(chuàng)建一些儀表板!

如圖2所示,在Try These X-Rays Based On Your Data部分,單擊帶有黃色閃電這說(shuō)明A look at your Products table。Metabase將為您生成一組問(wèn)題,您可以將這些問(wèn)題保存為儀表板。

圖2。Metabase包含的示例數(shù)據(jù)庫(kù)中Products表的X射線。

單擊保存此按鈕,Metabase將把儀表板及其問(wèn)題保存在收集有頭銜的A look at your Products table.

此集合將保存到名為自動(dòng)生成的儀表板。您可以通過(guò)單擊導(dǎo)航欄左上角的Metabase徽標(biāo)返回主屏幕來(lái)找到此集合。從主頁(yè),在我們的分析部分,單擊自動(dòng)生成的儀表板第節(jié)。從那里你應(yīng)該可以看到收藏品A look at your Products table(圖3)。

圖3.一個(gè)名為看看你的產(chǎn)品表.

接下來(lái),創(chuàng)建一個(gè)新的集合。你想叫什么都行;我們會(huì)用這個(gè)令人興奮的名字默認(rèn)集合,并保存到我們的分析收藏。

圖4。創(chuàng)建一個(gè)新的集合,名為默認(rèn)集合.

那我們就把A look at your Products table我們新創(chuàng)建的系列默認(rèn)集合.

步驟4-從origin?環(huán)境Dump

這是我們實(shí)際開(kāi)始使用Metabase的序列化功能的地方。

由于我們的Metabase源實(shí)例設(shè)置了一些問(wèn)題,現(xiàn)在是時(shí)候轉(zhuǎn)儲(chǔ)這些數(shù)據(jù)并將其加載到我們的Metabase目標(biāo)環(huán)境中了。這樣,我們就不必在目標(biāo)環(huán)境中手動(dòng)重新創(chuàng)建默認(rèn)集合。

首先在/tmp公司調(diào)用的目錄Metabase數(shù)據(jù)儲(chǔ)存垃圾:

cd /tmp

mkdir metabase_data

接下來(lái),我們將運(yùn)行dump命令。

docker run --rm --name metabase-dump \

--network metanet \

-e MB_DB_CONNECTION_URI="postgres://postgres:5432/metabase?user=metabase&password=knockknock" \

-v "/tmp/metabase_data:/target" \

 metabase/metabase-enterprise:v1.44.6 "dump /target"

此命令創(chuàng)建一個(gè)名為metabase dump的臨時(shí)Metabase實(shí)例。此臨時(shí)Metabase實(shí)例將連接到Metabase源環(huán)境的Postgres應(yīng)用程序數(shù)據(jù)庫(kù),并導(dǎo)出環(huán)境的數(shù)據(jù)。

如果一切順利,幾秒鐘后您應(yīng)該會(huì)看到一些輸出,然后在您的終端中顯示一條消息“數(shù)據(jù)遷移完成”。

為了驗(yàn)證垃圾堆,cd進(jìn)入您的目錄:/tmp/metabase_data。您應(yīng)該會(huì)看到兩個(gè)目錄和三個(gè)YAML文件:

  • collections/
  • databases/
  • dependencies.yaml
  • manifest.yaml
  • settings.yaml
顯示

清單文件包含有關(guān)環(huán)境的一些基本信息:

serialization-version: 1

metabase-version:

date: '2020-08-19'

tag: v1.36.4

branch: enterprise-release-1.36.x

 hash: 0324e9c
設(shè)置

設(shè)置文件包含許多可在設(shè)置新實(shí)例時(shí)配置的選項(xiàng)。以下是它的內(nèi)容:

enable-whitelabeling?: null

jwt-enabled: 'false'

ldap-host: null

jwt-attribute-email: null

engines: null

application-colors: '{}'

enable-embedding: 'false'

jwt-shared-secret: null

enable-xrays: 'true'

...
數(shù)據(jù)庫(kù)

此目錄包含所有元數(shù)據(jù)已連接數(shù)據(jù)庫(kù)的設(shè)置。在本例中,我們只包含Metabase中的Sample數(shù)據(jù)庫(kù)。

集合

在collections目錄中,我們將找到我們?cè)O(shè)置的數(shù)據(jù)。這是我們的Default_collection.yaml文件:

description: A default collection that features our default questions.

archived: false

slug: default_collection

color: '#509EE3'

name: Default collection

namespace: null

下面是一個(gè)題為Days when Products were added:

enable_embedding: false

visualization_settings:

graph.series_labels:

- number

graph.metrics:

- count

graph.dimensions:

- CREATED_AT

graph.colors:

- '#509EE3'

graph.x_axis.title_text: Created At by day of the month

dataset_query:

type: query

database: /databases/Sample Database

query:

source-table: /databases/Sample Database/schemas/PUBLIC/tables/PRODUCTS

breakout:

- - datetime-field

- - field-id

- /databases/Sample Database/schemas/PUBLIC/tables/PRODUCTS/fields/CREATED_AT

- day-of-month

aggregation:

- - count

name: Days when Products were added

archived: false

collection_position: null

database_id: /databases/Sample Database

embedding_params: null

table_id: /databases/Sample Database/schemas/PUBLIC/tables/PRODUCTS

...
步驟5-Load到target?環(huán)境

您需要至少一個(gè)管理員帳戶(hù)加載到我們的Metabase目標(biāo),以便上載轉(zhuǎn)儲(chǔ)。您可以通過(guò)應(yīng)用程序登錄以創(chuàng)建該用戶(hù),或者使用我們上面使用的腳本:只需記住更改MB_PORT5002,因?yàn)檫@是我們分配給Metabase目標(biāo)環(huán)境的端口。例如,cd到您保存create_users.sh?目錄中的腳本,然后運(yùn)行:

MB_HOSTNAME=localhost MB_PORT=5002 ./create_users.sh

我們可以將所有這些設(shè)置上載到目標(biāo)環(huán)境中,但是假設(shè)我們只想加載默認(rèn)集合。

讓我們復(fù)制我們的/tmp/metabase_data目錄,以便我們可以保留原始內(nèi)容并對(duì)副本進(jìn)行更改。

cp -r /tmp/metabase_data /tmp/serialize_load

換上新的/tmp/serialize_load目錄。我們要做兩個(gè)改變:

  1. 因?yàn)槊總€(gè)Metabase實(shí)例都包含示例數(shù)據(jù)庫(kù),而且我們沒(méi)有對(duì)元數(shù)據(jù)進(jìn)行任何更改,所以讓我們刪除databases目錄。從內(nèi)部/tmp/serialize_load目錄,運(yùn)行rm -r databases.
  2. 另外,我們把自動(dòng)生成的儀表板集合,因?yàn)槲覀冎幌肷蟼?code>默認(rèn)集合:
cd /tmp/serialize_load/collections/root/collections && rm -r Automatically\ Generated\ Dashboards/

要驗(yàn)證更改,可以運(yùn)行diff要查看原始序列化的_001目錄與將用于加載到Metabase目標(biāo)環(huán)境中的序列化的加載目錄之間的更改,請(qǐng)執(zhí)行以下操作:

diff -r metabase_data serialize_load

您應(yīng)該看到以下內(nèi)容:

Only in metabase_data/collections/root/collections: Automatically Generated Dashboards

Only in metabase_data: databases

現(xiàn)在,我們/tmp/serialize_load目錄設(shè)置后,可以運(yùn)行l(wèi)oad命令將元數(shù)據(jù)加載到out目標(biāo)環(huán)境metabase-target中。

docker run --rm --name metabase-dump \

--network metanet \

-e MB_DB_CONNECTION_URI="postgres://postgres-target:5432/metabase?user=metabase&password=knockknock" \

-v "/tmp/serialize_load:/target" \

 metabase/metabase-enterprise:v1.44.6 "load /target"
步驟6-在目標(biāo)環(huán)境中驗(yàn)證儀表板和集合

現(xiàn)在,如果您登錄到目標(biāo)環(huán)境http://localhost:5002,你應(yīng)該看看我們的默認(rèn)集合準(zhǔn)備好了,包含我們的A look at your Products table收藏。

就這樣:您已經(jīng)預(yù)裝了一個(gè)Metabase的新實(shí)例,其中包含一個(gè)包含大量問(wèn)題的儀表板的集合!

序列化限制

請(qǐng)注意,序列化轉(zhuǎn)儲(chǔ)不包含某些數(shù)據(jù):

  • 權(quán)限設(shè)置
  • 用戶(hù)帳戶(hù)或設(shè)置
  • 保存的問(wèn)題的預(yù)警
  • 個(gè)人收藏或者他們的內(nèi)容
序列化的其他用例

使用序列化功能導(dǎo)出問(wèn)題和儀表板可以打開(kāi)一些很酷的可能性,包括:

  • 向問(wèn)題和儀表板添加版本控制。您可以將下載的元數(shù)據(jù)簽入存儲(chǔ)庫(kù),并通過(guò)版本控制軟件(如git)管理對(duì)該數(shù)據(jù)的更改。
  • Metabase設(shè)置登臺(tái)環(huán)境。您可以在過(guò)渡環(huán)境中玩,直到對(duì)更改滿意為止,然后導(dǎo)出元數(shù)據(jù),并將其上載到生產(chǎn)環(huán)境。

請(qǐng)?jiān)囉靡幌滦蛄谢δ埽⒃谖覀兊脑谖覀兊恼搲细嬖V我們您是如何做到的。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站標(biāo)題:Metabase學(xué)習(xí)教程:系統(tǒng)管理-4-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/cohedi.html

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部