更新:以下を参照
データセットの[キー名]フィールドに入力する方法を理解したので、書き込み操作を2(8から)減らしました。しかし、私はまだこの余分な空の列「ID」を持っています。私はbulkloader.pyのさまざまな構成を試しましたが、その列にデータを入力できず、書き込み操作をさらに減らすことができます...
これが私が持っているものです:
python_preamble:
- import: base64
- import: re
- import: google.appengine.ext.bulkload.transform
- import: google.appengine.ext.bulkload.bulkloader_wizard
- import: google.appengine.ext.db
- import: google.appengine.api.datastore
- import: google.appengine.api.users
transformers:
- kind: Word
connector: csv
property_map:
- property: __key__
external_name: word
export_transform: transform.key_id_or_name_as_string
- property: ID
external_name: ID
# How to configure this one to use up that silly empty column called "ID"?
- property: otherlangs
external_name: otherlangs
これが私のcsvファイルのヘッダーといくつかのサンプル行です:
$ head allting.csv
ID,word,otherlangs
100,a,it|uno|
200,aaltos,fi|aaltojen|
300,aardvark,is|jarðsvín|nl|aardvarken|
更新:さて、「キー名」列を犠牲にして「ID」列にデータを入力する方法を見つけました...
私はbulkload.pyを次のように変更しました:
transformers:
- kind: Word
connector: csv
connector_options:
encoding: utf-8
columns: from_header
property_map:
- property: __key__
external_name: id
export_transform: transform.key_id_or_name_as_string
import_transform: transform.create_foreign_key('id', key_is_id=True)
- property: word·
external_name: word·
- property: otherlangs·
external_name: otherlangs·
csvファイルは次のようになります。
id,word,otherlangs
100,a,it|uno|
200,aaltos,fi|aaltojen|
...
そして、データストアビューアの出力は次のようになります。
IDと[キー名]列にデータを入力して書き込み操作を4に下げる方法があるかどうか、まだ疑問に思っていますか?