柚子快報激活碼778899分享:人工智能 知識圖譜開發(fā)日志
柚子快報激活碼778899分享:人工智能 知識圖譜開發(fā)日志
應用于應用環(huán)境的配置.測試.發(fā)布 假如你寫了一個web,并且測試調(diào)試都沒有問題 并且,你想發(fā)給你的朋友,導師,或者部署到遠程云服務器上 那么,你需要配置相同的軟件,比如數(shù)據(jù)庫,web服務器,必要的插件,庫,etc…但這并不一定能保證軟件的正常運行,因為別人可能使用完全不同的操作系統(tǒng),甚至不同的Linux發(fā)行版本也會有差別 為了模擬完全相同的本地開發(fā)環(huán)境,我們自然想到會使用虛擬機 但是,虛擬機需要完全模擬硬件,并且運行整個OS,不但體積臃腫且內(nèi)存占用極高,程序的性能多多少少也會受到影響
這時,docker就派上了用場 Docker的概念和虛擬機很擬合,但由于不用模擬底層的硬件,只會為每一個應用提供完全隔離的運行環(huán)境,所以輕量級很多 這個環(huán)境可以用來配置不同的工具軟件,并且這個環(huán)境相互獨立互不影響 大伙一般稱這個環(huán)境叫Container/容器
Docker中的三個重要概念:
鏡像:可以理解為虛擬機的快照snapshot,里面包含了要部署的應用程序以及它關聯(lián)的所有庫 通過鏡像,我們可以創(chuàng)建很多獨立的容器 容器:類似一臺臺獨立運行你的程序的虛擬機 文件:自動化腳本,用以創(chuàng)建鏡像(類似于在虛擬機中安裝OS及軟件,只不過通過DockerFile這個腳本自動完成了)
桌面版安裝部分參考來源 WSL2:windows旗下Linux子系統(tǒng)
1.查看自己電腦有無虛擬化 添加Hyper-V: txt文件內(nèi)復制下列代碼并重命名:Hyper-V.cmd
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
管理員權限運行Hyper: 啟用Hyper-V,子系統(tǒng),虛擬機平臺: 打開搜索欄,輸入windows,出現(xiàn)一個啟用或關閉Windows功能,并打開 也勾上 ... 安裝wsl
這里我不太清楚怎么安裝好的 如果是安好了誤刪,則需要微軟商店下載WINDOWS SUBSYSTEM FOT LINUX 但好像是,如果windows功能開啟了適用于linux的子系統(tǒng)則會自動有 微軟商店的WSL
檢查wsl并更新
wsl -l
wsl若報錯,沒有則跳過
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
更新WSL2的Linux內(nèi)核:官方下載地址
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
點擊更新WSL2的Linux內(nèi)核 此時提示沒有安裝Linux子系統(tǒng)發(fā)行版,不管,將默認安裝的Linux子系統(tǒng)版本設置為WSL2 將wsl版本設置為2
wsl.exe --set-default-version 2
1、關閉 Docker
2、“以管理員身份運行 powershell,輸入以下命令,升級wsl,耐心等待升級完成后,再啟動Docker就好了。
C:\WINDOWS\system32> wsl --update
修改默認安裝位置 安裝界面上是沒有提供修改安裝目錄的地方的,但官方提供了參數(shù)修改: 安裝包自己就提供了修改安裝路徑的功能,CMD中運行:
"Docker Desktop Installer.exe" install --installation-dir=
.... 打開后自動開始安裝,有下一步點下一步,全部選項默認即可。這里不能選擇安裝位置,Docker默認安裝必須是C盤,后續(xù)更改的是鏡像加載位置。雖然可以通過修改注冊表改變默認安裝位置,但是會引起問題,同時殃及一大堆其他軟件,極不推薦!
安裝完成后打開Docker,會出現(xiàn)引導界面,點擊右下方skip跳過
點擊下載docker 出現(xiàn)helloworld鏡像
修改Docker鏡像的加載路徑
如果您的C盤空間夠用,完全沒有必要遷移,請?zhí)D(zhuǎn)至“配置WRF”。
Docker默認安裝位置為C盤,不建議修改,但是鏡像的存儲和加載路徑可以被修改,前提是Docker采用的是WSL2的模式,即wsl -l -v看到的兩行docker相關的VERSION都是2,否則遷移會使docker難以加載并且效率變低(這是我自己的經(jīng)驗不代表官方)。
同時,遷移前Docker內(nèi)不應該有任何需要用的容器、鏡像存在,遷移已有的容器到其他盤我也不知道會出什么問題,保險起見、效率起見還是清空。
清空方法:Docker右上角小蟲子(Troubleshoot)- Clean / Purge data,彈出窗口全部打勾。
清空后Docker內(nèi)所有鏡像消失,之前的hello-world也消失,此時先選擇好自己想要遷移到哪里 比如D盤,然后新建文件夾,比如DockerImages,打開以后在里面繼續(xù)創(chuàng)建兩個文件夾:docker-desktop和docker-desktop-data,名字不用完全一致,只是為了好區(qū)分。
創(chuàng)建這兩個文件夾的原因是在Terminal中之前看到的docker-desktop和docker-desktop-data一個存放程序,一個存放鏡像,路徑不能一樣。 然后把Docker完全退出!否則會出問題!
Docker任務欄圖標消失后,還需要使用命令
wsl -l -v 確認docker-desktop和docker-desktop-data兩項右側的狀態(tài)是stop而非running,才是徹底停止了。
如果仍是running的話,使用wsl --shutdown,停止所有wsl虛擬環(huán)境。 wsl --export docker-desktop docker-desktop.tar wsl --export docker-desktop-data docker-desktop-data.tar 這一步是將原來的docker鏡像導出,由于之前進行過清理,所以兩個都不會太大。命令中的“docker-desktop.tar”是相對位置,即保存在現(xiàn)在的DockerImages文件夾下,也可以填自己想要的絕對位置,data同理。 然后注銷docker的wsl子系統(tǒng)
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
再在新位置重新創(chuàng)建
wsl --import docker-desktop D:\Docker-work\docker-desktop docker-desktop.tar
wsl --import docker-desktop-data D:\Docker-work\docker-desktop-data docker-desktop-data.tar
這里的命令可以分段來看,“D:\DockerImages\docker-desktop”是目標目錄,用絕對位置,新的子系統(tǒng)會創(chuàng)建在這里;空格以后的“docker-desktop.tar”是剛剛導出的鏡像的相對位置,意思是把這個鏡像導入到前面的目標目錄里面。 docker-desktop-data同理。 導入以后,在相應的兩個目標文件夾里就會顯示出后綴為.vhdx的虛擬磁盤,大小和之前導出的兩個tar相比量級相同,會大一些。 再次啟動Docker,短暫等待之后坐下小鯨魚變綠,說明遷移成功,軟件沒受影響。 更改鏡像地址 點擊右下應用
Docker操作-桌面/VS
下面所有的操作,均有桌面版和插件版的對應方法,我各自舉例一點: 桌面版操作: 圖形界面可以在后臺查看應用所有的輸出,便于調(diào)試 也可看見當前容器的信息,狀態(tài)…可以停止,重啟,刪除容器,可shell遠程調(diào)試這個容器 若刪除一個容器,之前對該容器所有的操作和添加的數(shù)據(jù)都會丟失(類似于虛擬機的刪除) 若想要保存容器的數(shù)據(jù),可以使用docker中提供的volume數(shù)據(jù)卷,可以將其當作一個在本地主機和不同容器間共享的文件夾,比如下面在容器1中修改了volume2,則容器3享用v2時是被修改了的
創(chuàng)建數(shù)據(jù)卷-終端
docker volume create
docker run -dp 80:5000 -v 數(shù)據(jù)卷名haha:/etc/ha 容器名c
//-v將數(shù)據(jù)卷掛載mount到容器的哪一個路徑上,此處將haha掛在到容器名c的/etc/ha這個路徑下,向這個路徑寫入的任何數(shù)據(jù)都會被永久保存在數(shù)據(jù)卷中
VSCODE推薦安裝其擴展: DockerHub上有很多高質(zhì)量的操作系統(tǒng)鏡像,不同的OS提供不同的包管理工具:
Ubantu:apt
Fedora:dnf
也有許多方便某一種語言,某種框架開發(fā)的框架:
node,redis,nginx,py,tomcat
使用>docker來運行各種Docker命令,并且在左側面板中看到所有的鏡像,容器等 在應用的根目錄下創(chuàng)建一個DockerFile文件
完成一個DOCKER-IMAGE鏡像創(chuàng)建,通過自動化腳本DOCKERFILE
FROM python:3.8-slim-buster//指定一個基礎鏡像basic-image
//官方鏡像:pyhton
//這個鏡像的版本標簽Tags:3.8-slim-buster
WORKDIR /app //指定了該命令之后所有Docker命令的工作路徑,若不存在會自動創(chuàng)建該路徑,避免絕對路徑和手動cd切換
COPY..
//<本地路徑><目標路徑(Docker鏡像中的路徑)>
//將所有的程序拷貝導Docker鏡像中
//第一個"."表示程序根目錄下的所有文件
//第二個"."代表當前的工作路徑,即之前指定的app目錄
RUN pip3 Install -r requirement.txt //允許創(chuàng)建鏡像時運行任意的shell命令,這里是安裝py程序的所有關聯(lián)
CMD["python3","app.py"] //CMD["可執(zhí)行文件","參數(shù)1",..,"參數(shù)n"]指定當docker容器運行起來以后需要執(zhí)行的指令
//RUN是創(chuàng)建鏡像時使用,CMD運行容器的時候使用
終端terminal運行創(chuàng)建鏡像(首次慢,但docker會緩存每一個操作,二次快,這個在docker中被稱為分層layer)
docker built -t 名字 .
//-t:指定鏡像名字/標簽
//最后的"."告訴docker應該在當前目錄下尋找這個dockerfile
有了鏡像,啟動
docker run -p 80:5000 -d 名字
//-p:映射容器的某個端口到本地主機上,這樣才能從主機訪問這個應用
//80主機端口
//5000容器的端口
//-d讓容器在后臺運行(detach):使容器的輸出不顯示在控制臺
瀏覽器地址欄輸入localhost訪問這個應用即可
多個容器可以干嘛? 一個運行web 一個運行數(shù)據(jù)庫 ->數(shù)據(jù)和應用邏輯分離,各自獨立:web程序宕機,數(shù)據(jù)庫依舊運轉(zhuǎn),此時僅修復web容器即可
docker-compose.yml
services://定義多個container
web://容器1
build:.
ports:
- "80:5000"
db://容奇2
image:"mysql"
enviroment:
MYSQL_DATABASE:finance-db
MYSQL_ROOT_PASSWORD:secret
volumes:
- my-data:/var/lib/mysql
volumes:
my-data:
//可通過這兩個環(huán)境變量指定數(shù)據(jù)庫的名字和連接密碼
定義完畢,保存文件 使用docker compose up來運行所有的容器 使用docker compose down來停止并刪除所有的容器 新創(chuàng)建的數(shù)據(jù)卷需要手動刪除,除非手動后面加入–volumes參數(shù)
很多應用,數(shù)據(jù)庫容器都運行在同一個計算機中,隨著應用規(guī)模的增大,一臺計算機無法滿足我們的所有需求,我們需要一個集群來提供服務,負載均衡,故障轉(zhuǎn)移,則用kubernetes kubernetes就是將各個容器分發(fā)到一個集群cluster上運行,并進行全自動化的管理,包括應用的部署和升級
知識圖譜開發(fā)日志
... 下載的GitHub最好置入新建文件夾,然后導入以此為根目錄
返回,分別有:
那里報錯下哪個插件(這里的vue,vite,react,json)
確保dc已安裝docker-compose --version 文件資源管理器找到對應含docker-compose.yml的地方 將.env.example文件修改為.env
這個時候就是你的localhost在docker容器端口與應用端口連接的情況下可以訪問這個相連端口了 好好好,4個G的項目干到37個G
... 環(huán)境 官方 鏡像 生成鏡像 git docker使用 使用2 3 4
大學
docker使用 Neo4j-APOC擴展與使用 neo4j:browser 知識圖譜構建:圖數(shù)據(jù)庫Neo4j的節(jié)點和關系的新增、刪除 vue+neo4j +純前端(neovis.js / neo4j-driver) 實現(xiàn) 知識圖譜的集成 圖數(shù)據(jù)庫Neo4j實戰(zhàn)
$后面輸入查詢語句
1.
往Neo4j里放數(shù)據(jù)有多種方式,具體取決于你的數(shù)據(jù)格式、數(shù)據(jù)量大小以及你的個人偏好。以下是一些常見的方法:
使用Cypher語法直接創(chuàng)建:
適用于數(shù)據(jù)量較小的情況。你可以直接編寫Cypher語句來創(chuàng)建節(jié)點、關系和屬性。
例如:CREATE (n:Person {name: '張三', age: 30}) 會創(chuàng)建一個名為“張三”的Person節(jié)點,并設置其age屬性為30。
使用LOAD CSV導入數(shù)據(jù):
如果你的數(shù)據(jù)是CSV格式的,你可以使用LOAD CSV語句將數(shù)據(jù)導入Neo4j。
首先,確保CSV文件符合Neo4j的要求(如編碼格式、字段分隔符等)。
然后,編寫包含LOAD CSV的Cypher語句,指定CSV文件的路徑,并定義如何創(chuàng)建節(jié)點和關系。
例如:LOAD CSV WITH HEADERS FROM "file:///your_data.csv" AS row CREATE (n:Person {name: row.name, age: toInteger(row.age)})。
使用neo4j-admin工具導入:
適用于大量數(shù)據(jù)的導入。neo4j-admin工具提供了高效的數(shù)據(jù)導入功能。
你需要按照工具的格式要求準備數(shù)據(jù),然后使用命令行調(diào)用neo4j-admin進行導入。
使用編程語言導入數(shù)據(jù):
如果你熟悉編程,可以使用Neo4j提供的Java API、Python驅(qū)動程序等,通過編程方式將數(shù)據(jù)導入Neo4j。
這通常涉及到連接到Neo4j數(shù)據(jù)庫,然后執(zhí)行相應的Cypher語句或操作來創(chuàng)建節(jié)點和關系。
使用ETL工具:
ETL(Extract, Transform, Load)工具可以幫助你從各種數(shù)據(jù)源中提取數(shù)據(jù),進行必要的轉(zhuǎn)換,然后加載到Neo4j中。
這通常需要一些配置和映射工作,但一旦設置完成,就可以自動化地導入數(shù)據(jù)。
使用第三方插件或工具:
有些第三方插件或工具提供了額外的數(shù)據(jù)導入功能,如APOC插件等。
你可以根據(jù)具體需求選擇適合的插件或工具來導入數(shù)據(jù)。
在選擇導入方法時,請考慮你的數(shù)據(jù)量、數(shù)據(jù)格式、導入頻率以及你的技術棧和偏好。對于大量數(shù)據(jù)的導入,通常建議使用更高效的方法,如neo4j-admin工具或ETL工具。對于小量數(shù)據(jù)或需要靈活處理的情況,使用Cypher語法或編程語言可能更為方便。
2.
您上傳的文件可以是多種格式,具體取決于您選擇的數(shù)據(jù)導入方法以及您的具體需求。Neo4j支持多種數(shù)據(jù)格式的導入,包括但不限于以下幾種常見的格式:
CSV格式:CSV(逗號分隔值)是一種通用的表格數(shù)據(jù)格式,非常適合用于存儲結構化的數(shù)據(jù)。Neo4j提供了LOAD CSV語句,允許您直接從CSV文件中導入數(shù)據(jù)。此外,如果您使用py2neo等庫,也可以方便地將CSV文件導入Neo4j。
JSON格式:JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于人類閱讀和編寫,同時也易于機器解析和生成。Neo4j可以直接將JSON格式的數(shù)據(jù)導入為圖結構。
GraphML格式:GraphML是一種用于表示圖形數(shù)據(jù)的XML格式。如果您的數(shù)據(jù)已經(jīng)是GraphML格式,那么可以直接導入Neo4j。
在選擇文件格式時,請考慮您的數(shù)據(jù)來源、數(shù)據(jù)量和數(shù)據(jù)處理需求。如果您的數(shù)據(jù)已經(jīng)是上述某種格式,那么可以直接使用該格式進行導入。如果需要進行數(shù)據(jù)轉(zhuǎn)換或處理,您可能需要使用編程語言或ETL工具將數(shù)據(jù)轉(zhuǎn)換為適當?shù)母袷健?/p>
此外,無論使用哪種格式,都需要確保數(shù)據(jù)的完整性和準確性,以及符合Neo4j的導入要求。例如,CSV文件需要符合特定的編碼和格式要求,JSON文件需要具有正確的結構和鍵值對等。
最后,根據(jù)您的具體需求和使用的導入方法,您可能需要編寫一些自定義的腳本或語句來處理數(shù)據(jù)導入過程中的特定問題。
3.
將 JSON 文件導入 Neo4j 的方法取決于您使用的具體工具和 Neo4j 的版本。Neo4j 本身并不直接支持從 JSON 文件導入數(shù)據(jù)。通常,您需要使用 Cypher 查詢語言或其他工具/插件來解析 JSON 并將其轉(zhuǎn)換為圖結構。
以下是一些可能的方法:
使用 APOC 插件:APOC 是一個流行的 Neo4j 插件,它提供了許多有用的功能和過程,包括處理 JSON 數(shù)據(jù)。如果您已經(jīng)安裝了 APOC,您可以使用其提供的函數(shù)來解析和導入 JSON 數(shù)據(jù)。
編寫自定義腳本:您可以使用 Python、Java 或其他語言編寫一個腳本,該腳本讀取 JSON 文件,解析其內(nèi)容,并使用 Neo4j 驅(qū)動程序(如 Neo4j Driver for Python 或 Neo4j Java Driver)將數(shù)據(jù)作為 Cypher 語句發(fā)送到 Neo4j 數(shù)據(jù)庫。
轉(zhuǎn)換為 CSV 并導入:如果您熟悉 CSV 格式并且數(shù)據(jù)量適中,您可以考慮將 JSON 數(shù)據(jù)轉(zhuǎn)換為 CSV 格式,然后使用 Neo4j 的 LOAD CSV 功能將數(shù)據(jù)導入圖數(shù)據(jù)庫。
使用第三方工具:有些第三方工具可能支持直接從 JSON 文件導入數(shù)據(jù)到 Neo4j。您可以查找并評估這些工具,看看是否有適合您需求的。
請注意,無論您選擇哪種方法,都需要確保您的 JSON 數(shù)據(jù)結構與您的圖模型相匹配,并且正確地映射了節(jié)點、關系和屬性。
4.
在Neo4j中,如果你收到錯誤消息“Create node with labels 'Person' on database 'companies' is not allowed for user 'companies' with roles [PUBLIC, companies]”,這意味著當前用戶(在本例中是'companies'用戶)沒有足夠的權限在'companies'數(shù)據(jù)庫上創(chuàng)建帶有'Person'標簽的節(jié)點。
Neo4j支持基于角色的權限管理,以確保不同用戶只能執(zhí)行他們被授權的操作。在這種情況下,'companies'用戶只擁有PUBLIC和companies這兩個角色的權限,而這些權限可能不包括在'companies'數(shù)據(jù)庫上創(chuàng)建特定標簽的節(jié)點的能力。
要解決這個問題,你需要做以下幾步:
登錄為具有管理權限的用戶:通常,這是neo4j超級用戶,它擁有所有數(shù)據(jù)庫的完全訪問權限。
檢查并修改用戶權限:使用Cypher查詢或Neo4j的管理界面來檢查'companies'用戶的當前權限,并根據(jù)需要修改它們。你可能需要給用戶分配額外的角色或直接授予創(chuàng)建節(jié)點的權限。
例如,使用以下Cypher查詢來查看用戶的角色和權限:
cypher
SHOW GRANTS FOR USER 'companies';
要授予用戶創(chuàng)建節(jié)點的權限,你可以使用類似以下的命令(這取決于你的具體需求和安全策略):
cypher
GRANT CREATE ON NODE Labels TO 'companies';
重新嘗試操作:一旦權限被正確設置,'companies'用戶應該能夠在'companies'數(shù)據(jù)庫上創(chuàng)建帶有'Person'標簽的節(jié)點了。
請注意,直接修改用戶權限可能會帶來安全風險,因此請確保你了解這些更改的含義,并遵循你的組織的安全最佳實踐。如果你不確定如何操作,最好咨詢你的數(shù)據(jù)庫管理員或具有Neo4j管理經(jīng)驗的專業(yè)人員。
5.
在Neo4j中,如果你想授予用戶在特定標簽的節(jié)點上創(chuàng)建節(jié)點的權限,你應該使用以下格式的Cypher語句:
cypher
GRANT CREATE ON LABELS
這里,
例如,如果你想給 'companies' 用戶授予創(chuàng)建標簽為 'Person' 的節(jié)點的權限,你應該這樣寫:
cypher
GRANT CREATE ON LABELS Person TO 'companies';
請確保將 'Person' 替換為你實際想要授予權限的標簽名稱,并且 'companies' 是正確的用戶名。
如果你正在嘗試為多個標簽授予權限,你需要為每個標簽單獨執(zhí)行 GRANT 語句,或者在一些Neo4j的版本中,可以使用逗號分隔標簽名稱:
cypher
GRANT CREATE ON LABELS Person, Employee TO 'companies';
請根據(jù)你的Neo4j版本和配置調(diào)整語句。如果你不確定版本或具體的語法,建議查閱對應版本的Neo4j官方文檔。此外,請確保執(zhí)行此操作的用戶具有足夠的權限來修改其他用戶的權限。
6.
您提供的Cypher語句是有效的,用于在Neo4j數(shù)據(jù)庫中創(chuàng)建一個新的節(jié)點,并給它賦予Person標簽以及name和age兩個屬性。這里是完整的語句:
cypher
CREATE (n:Person {name: 'John Doe', age: 30})
這條語句做了以下幾件事情:
CREATE:這是一個Cypher命令,用于在數(shù)據(jù)庫中創(chuàng)建新的節(jié)點或關系。
(n:Person {name: 'John Doe', age: 30}):這定義了一個新節(jié)點n,并給它分配了Person標簽。同時,它還設置了兩個屬性,name的值是'John Doe',age的值是30。
要執(zhí)行這條語句,您需要:
確保您已經(jīng)連接到Neo4j數(shù)據(jù)庫。
打開Neo4j Browser(或您選擇的任何Neo4j客戶端)。
在命令輸入框中輸入上述Cypher語句。
執(zhí)行該語句(通常是通過點擊“運行”按鈕或使用快捷鍵)。
如果一切正常,Neo4j將在數(shù)據(jù)庫中創(chuàng)建一個新的Person節(jié)點,并且該節(jié)點將具有指定的屬性。您可以使用MATCH和RETURN語句來檢索并驗證新創(chuàng)建的節(jié)點:
MATCH (n:Person {name: 'John Doe'})
RETURN n;
這條查詢會找到所有標簽為Person且name屬性為'John Doe'的節(jié)點,并返回它們。如果您剛剛創(chuàng)建了該節(jié)點,那么應該只返回一個結果。
柚子快報激活碼778899分享:人工智能 知識圖譜開發(fā)日志
相關文章
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權,聯(lián)系刪除。