从现在开始,开启您的嬴图之旅。使用嬴图提供的工具,轻松导入或连接现有的各种格式数据,构建您的图集。
可用工具
嬴图Manager的入图工具
嬴图Manager的入图模块支持将多种来源的数据导入嬴图数据库中,操作界面直观。
嬴图Transporter
嬴图Transporter是一款跨平台命令行工具,用于向嬴图数据库导入数据和从嬴图数据库导出数据。
支持的数据源
文件
CSV
JSON
JSONL
关系型数据库
MySQL
PostgreSQL
SQL Server
Oracle
snowflake
图平台
Neo4j
GraphML
RDF
其他
BigQuery
Kafka
Salesforce
示例:从CSV文件导入数据
本示例为您演示如何使用嬴图Manager的入图模块从CSV文件导入数据。
准备CSV文件
点击下载以下CSV文件:
如想了解文件中的各列信息和待使用的图结构,请参阅数据模型:从关系模型到图模型。
创建图集
使用入图模块将数据导入图集前,需确认已在数据库中创建了目标图集。
创建Loader
从左侧菜单栏导航至入图模块,并创建新的Loader,默认命名为My Loader。
创建任务导入点
鼠标悬停在New Task上,选择CSV,配置完任务后点击Import:
- 在Graph下选择
Retail
。 - 在Schema下输入
Customer
。 - 将
Customer.csv
上传至File。 - 取消勾选Headless选项,这是因为该CSV文件包含标题行,其中包含属性名称和类型。
- 将属性
cust_no
的Type更新为_id。
使用同样的方法导入Merchant点。将属性merch_no
的Type更新为_id。
创建任务导入边
鼠标悬停在New Task上,选择CSV,配置完任务后点击Import:
- 在Graph下选择
Retail
。 - 在Schema下选择Edge并输入
TransfersTo
。 - 将
Transactions.csv
上传至File。 - 取消勾选Headless选项,这是因为该CSV文件包含标题行,其中包含属性名称和类型。
- 将属性
cust_no
的Type更新为_from,将属性merch_no
的Type更新为_to。
验证图集
您可在左侧菜单栏点击Schema来验证图集。
示例:从关系型数据库导入数据
本示例为您演示如何使用嬴图Transporter从MySQL数据库导入数据。
下载嬴图Transporter
点击此处下载嬴图Transporter。以下操作均基于Windows版本演示。
准备配置文件
嬴图Transporter需要使用配置文件来运行。以下为示例。请确保在sqlDatabase
和server
部分更新你的MySQL和嬴图服务器信息。点击此处下载config.yml文件。
# 模式选项: csv/json/jsonl/rdf/graphml/bigQuery/sql/kafka/neo4j/salesforce;仅可使用一种模式
# SQL支持mysql/postgreSQL/sqlserver/snowflake/oracle
mode: sql
# SQL服务器配置
sqlDatabase:
# 驱动: 从mysql/postgreSQL/sqlserver/snowflake/odbc/oracle中选择
driver: "mysql"
# dsn:数据源名称
# 如果提供了DSN,则优先使用它而非个人连接设置
# 如果未指定DSN ,则使用个人连接设置(host,port,dbname,username和password)连接到数据库
# mysql dsn: "<username>:<password>@tcp(<host>:<port>)/<dbname>?net_write_timeout=6000"
# postgreSQL dsn: "user=<username> dbname=<dbname> password=<password> host=<host> port=<port> sslmode=disable"
# sqlserver dsn: "server=<host>,<port>;user id=<username>;password=<password>;database=<dbname>"
# snowflake dsn: "<username>:<password>@<orgname>-<account_name>/<db_name>/<schema_name>?warehouse=<warehouse_name>"
# odbc dsn: "DSN=<dsn>;UID=<username>;PWD=<password>"
# oracle dsn: "oracle://<username>:<password>@<host>:<port>/<dbname>"
dsn: ""
# Host IP/URI
host: "192.168.1.88"
port: "3306"
dbname: "Retail"
username: "root"
password: "root"
# 嬴图服务器配置
server:
# Host IP/URI 和 port
# 如果是一个集群,则使用逗号分隔host,即“<ip1>:<port1>,<ip2>:<port2>,<ip3>:<port3>”
host: "10.11.22.33:1234"
username: "admin"
password: "admin12345"
# 数据即将导入的新图集或已有图集
graphset: "Retail"
# 如果上述图集为新图集,需指定存储所在分片
shards: "1,2,3"
# 如果上述图集为新图集,需指定分区函数(Crc32/Crc64WE/Crc64XZ/CityHash64)
partitionBy: "Crc32"
# 用于TLS加密的证书文件路径(可选)
crt: ""
# 点配置
nodeConfig:
# 指定导入点的点类型(schema)
- schema: "Customer"
# 编写SQL查询以便从SQL数据库获取数据
sql: "SELECT * FROM Customer"
# 属性:将SQL查询结果映射为图数据库属性
# 针对每个属性,您可配置以下参数:
## name:SQL查询结果的列名
## new_name:列名将映射到的属性名;若未设置,默认使用列名
## type:支持的类型包括_id,_from,_to,_ignore(跳过导入列)和其他嬴图属性类型,如int64,int32,float,string等
## prefix:为_id,_from或_to类型的值增加前缀;不适用于其他类型
# 如果未配置类型,系统将根据SQL查询结果自动进行映射
# 必须显式配置SQL查询结果中名为_id、_uuid、_from、_from_uuid、_to或_to_uuid的列
properties:
- name: cust_no
type: _id
- name: name
type: string
- name: level
type: int32
- schema: "Merchant"
sql: "SELECT * FROM Merchant"
properties:
- name: merch_no
type: _id
- name: name
type: string
- name: type
type: string
# 边配置
edgeConfig:
- schema: "TransfersTo"
sql: "SELECT * FROM Transaction"
properties:
- name: trans_no
type: string
- name: cust_no
type: _from
- name: merch_no
type: _to
- name: time
type: datetime
- name: amount
type: float
# 全局设置
settings:
# CSV文件使用的分隔符(仅适用于csv模式)
separator: ","
# 定义日志文件输出路径
logPath: "./logs"
# 每批次插入的行数
batchSize: 10000
# 导入模式支持insert/overwrite/upsert
importMode: insert
# 自动为边创建缺失的端点(仅适用于导入边)
createNodeIfNotExist: false
# 报错时停止导入进程
stopWhenError: false
# 导入无标题的CSV文件,当配置的字段数量与文件中的字段数量不同时,若设置为true,可根据配置忽略或自动填充数据字段(仅适用于csv模式)
fitToHeader: true
# 设置为true时,自动创建缺失的图集、schema和属性
yes: true
# 最大线程数
threads: 32
# 每个数据包的最大大小(单位为MB)
maxPacketSize: 40
# 时间戳对应的时区
# timeZone: "+0200"
# 时间戳单位,支持ms/s
timestampUnit: s
运行嬴图Importer
解压缩在上一步下载的文件,导航至ultipa-importer.exe
和ultipa-exporter.exe
所在文件夹。您也可以将config.yml
文件放入此文件夹中。从该文件夹打开终端软件(如PowerShell),运行以下命令:
./ultipa-importer --config ./config.yml
验证图集
您可使用嬴图Manager或其他方法连接至嬴图服务器,验证刚刚导入的图集。