go importer 相关指令¶
状态: 📝 草稿
创建日期: 2026-02-28 最后更新: 2026-02-28
临时存储¶
- 根据坐标生成围栏地图:https://mapscaping.com/free-online-geojson-viewer/
- 根据围栏生成坐标:https://geojson.io/
- JSON 格式解析:https://jsonparser.platyhouse.com/
contract 设计文档的 topic(Claude 会话恢复):
操作相关¶
日常运行¶
go run cmd/importer/main.go --config_dir ~/data/real/goimporter/configs --task transform --board_id TST
执行初始化¶
go run cmd/importer/main.go --config_dir ~/data/real/goimporter/configs --task transform --board_id TST --init
go run cmd/importer/main.go --config_dir ~/goimporter/configs --task transform --board_id TST --init
go run cmd/importer/main.go --config_dir ~/goimporter/configs --task transform --board_id TST --query '{}'
文件同步¶
rsync -avz --delete --progress \
--filter=':- .gitignore' \
--include '*/' --include '*.go' --include '*.sh' \
--include '*.toml' --include '*.sum' --include '*.mod' \
--exclude '*' \
/Users/pengxin/data/real/goimporter/src/ cab5:~/goimporter/src
rsync -avz --delete --progress \
--filter=':- .gitignore' \
--include '*/' --include '*.go' --include '*.sh' \
--include '*.toml' --include '*.sum' --include '*.mod' \
--exclude '*' \
/Users/pengxin/data/real/gowatch/ cab5:~/gowatch
服务器上执行 batch¶
go run cmd/batch/main.go migrate_boundary --config_dir ~/data/real/goimporter/configs --limit 20 --dry_run
初始化并 watch¶
无日志:
nohup ~/goimporter/src/bin/importer --config_dir ~/goimporter/configs --task transform --board_id EDM --init > /dev/null 2>&1 &
带日志:
# RM1
nohup ~/goimporter/src/bin/importer --config_dir ~/goimporter/configs --task transform --board_id RM1 --init >> ~/goimporter/logs/init-RM1.log 2>&1 &
# EDM
nohup ~/goimporter/src/bin/importer --config_dir ~/goimporter/configs --task transform --board_id EDM --init >> ~/goimporter/logs/init-EDM.log 2>&1 &
# BRE
nohup ~/goimporter/src/bin/importer --config_dir ~/goimporter/configs --task transform --board_id BRE --init >> ~/goimporter/logs/init-BRE.log 2>&1 &
查看进程 / 日志¶
DB 相关¶
触发 watch(更新数据库内容)¶
db.reso_test_evow_merged.updateOne(
{ "_id": "TST001" },
{ $set: { "TaxYear": Math.floor(Math.random() * (2026 - 1990 + 1)) + 1990 } }
);
db.reso_test_evow_merged.updateOne(
{ "_id": "TRBX12240721" },
{ $set: { "TaxYear": Math.floor(Math.random() * (2026 - 1990 + 1)) + 1990 } }
);
db.reso_test_evow_merged.updateMany(
{ },
{ $set: { "TaxYear": Math.floor(Math.random() * (2026 - 1990 + 1)) + 1990 } }
);
db.listing_tst_rm.drop(); db.listing_tst_src.drop();
备份某个集合¶
删除集合内的数据¶
重置若干个表¶
use importer
["failed_documents", "geo_warning", "listing_bre_rm", "listing_bre_src",
"listing_car_rm", "listing_car_src", "listing_test_board_2_rm", "listing_test_board_2_src",
"listing_test_board_rm", "listing_test_board_src", "listing_trb_rm", "listing_trb_src",
"listing_tst_rm", "listing_tst_src", "building", "property",
"listing_clg_rm", "listing_clg_src", "listing_ddf_rm", "listing_ddf_src",
"listing_edm_rm", "listing_edm_src", "listing_otw_rm", "listing_otw_src",
"listing_rhb_rm", "listing_rhb_src", "listing_rm1_rm", "listing_rm1_src"
].forEach(c => print(db[c].drop() ? `Success: ${c}` : `Failed/Not Found: ${c}`));
查询 building 对应的 listing¶
db.listing_rm.aggregate([
{ $match: { "addr_calc.building_id": { $gt: 0 } } },
{ $group: { _id: "$addr_calc.building_id", count: { $sum: 1 } } },
{ $match: { count: { $gt: 2 } } },
{ $sort: { count: -1 } },
{ $lookup: { from: "building", localField: "_id", foreignField: "_id", as: "b" } },
{ $project: { count: 1, uaddr: { $arrayElemAt: ["$b.uaddr", 0] } } }
])
数据导入导出¶
# 导出
mongodump --uri "mongodb://d1:d1@ca12:27017/listing?authSource=admin&ssl=true&tlsInsecure=true" --collection=geo_cache --gzip
mongodump --uri "mongodb://d1:d1@ca12:27017/listing?authSource=admin&ssl=true&tlsInsecure=true" --collection=boundary --gzip
mongodump --uri "mongodb://d1:d1@ca12:27017/listing?authSource=admin&ssl=true&tlsInsecure=true" --collection=census2021 --gzip
scp -r dump/listing/census2021.* 167.114.208.35:~/dump/listing/
# 导入
mongorestore "mongodb://cab4user:PvUZy5kwqrfN@127.0.0.1:27017/tmp?authSource=admin" --db tmp --collection census2021 --drop --gzip dump/listing/census2021.bson.gz
mongorestore "mongodb://cab4user:PvUZy5kwqrfN@127.0.0.1:27017/tmp?authSource=admin" --db tmp --collection geo_cache --drop --gzip dump/listing/geo_cache.bson.gz
mongorestore "mongodb://cab4user:PvUZy5kwqrfN@127.0.0.1:27017/tmp?authSource=admin" --db tmp --collection boundary --drop --gzip dump/listing/boundary.bson.gz
一个导出导入的例子¶
mongodump --uri "mongodb://d1:d1@ca12:27017/data?authSource=admin&ssl=true&tlsInsecure=true" --collection=zip --gzip
mongorestore "mongodb://cab4user:PvUZy5kwqrfN@127.0.0.1:27017/importer?authSource=admin" --collection geo_zip --drop --gzip zip.bson.gz
备份表 cab4¶
mongodump --uri "mongodb://cab4user:PvUZy5kwqrfN@127.0.0.1:27017/importer?authSource=admin" --collection boundary --gzip
mv dump/importer/boundary.* 01_db_importer_backup/