SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
らいとにんぐとーく
 〜Bulkloader〜
   @o310yusuke
Javaな小川さんの前で・・・
Pythonの話をします!!
           (ゝω・) テヘペロ
ワイルドだろぉ〜
Bulkloader
注意事項
●   詳しい設定は公式サイトを・・・

●   「GAE bulkloader」で検索して下さい
なんぞ?
●   GAE/Py(Python2系)

●   Datastoreのデータをダウンロード

●   Datastoreにデータをアップロード

●   大量データも動く
いいところ
●   XMLとかCSVとか使える

●   マスタデータを事前に投入できる

●   GAE/Jアプリ用のデータも作れる
設定方法〜主キー〜
- property: __key__
  external_name: key ← JavaのModelで設定した名前
  export_transform: transform.key_id_or_name_as_string
  ↑ Keyクラスの値を文字列でダウンロード
  import_transform: transform.none_if_empty(long)
  ↑ IDの値をKeyとして設定(空だったら自動設定)
   同じidだったら更新される(ハズ)
設定方法〜外部キー〜
- property: modelRef
  external_name: modelRef ← JavaのModelで設定した名前
  export_transform: transform.key_id_or_name_as_string
  ↑ ModelRefで設定しているKeyクラスの値を文字列で
  import_transform: transform.create_foreign_key(
    'KIND名', key_is_id=True)
  ↑ どのKINDの主キーとして設定するか
   (Keyはidかnameか)
設定方法〜祖先パス〜
- property: __key__
  external_name: key
  export_transform: transform.key_id_or_name_as_string
  import_transform: transform.create_deep_key(
      ('先祖KIND名', '先祖のキーを表すプロパティ名',True),
      ('KIND名', 'キーを表すプロパティ名',True)
  )
設定方法〜ラムダ式〜
- property: list
  external_name: list
  export_transform: "lambda li: ['_'.join(s) for s in li]"
  import_transform: "lambda str: str.split('_')"
設定方法〜ラムダ式2〜
- property: keyList
  external_name: keyList
  export_transform: "lambda li: ['_'.join(
    transform.key_id_or_name_as_string(li) for s in li]"
  import_transform: "lambda str: [
     transform.create_foreign_key('KIND名', key_is_id=True
     (s) for s in str.split('_')]"
困った事
●   データ削除は管理画面で。。。
●   大量データの更新には時間が。。。
●   キー発番ルールがわからん;;
●   bulkloaderの設定がPython・・・
●   空のリストのbulkloaderの設定が;;
fin...

Más contenido relacionado

La actualidad más candente

OSS についてあれこれ
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれTakuto Wada
 
テスト用ライブラリ power-assert
テスト用ライブラリ power-assertテスト用ライブラリ power-assert
テスト用ライブラリ power-assertTakuto Wada
 
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸Takahiro Iwase
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」Kentaro Yoshida
 
Enumはデキる子 ~ case .Success(let value): ~
 Enumはデキる子 ~ case .Success(let value): ~ Enumはデキる子 ~ case .Success(let value): ~
Enumはデキる子 ~ case .Success(let value): ~Takaaki Tanaka
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術Koichi Fujikawa
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索techtalkdwango
 
Embulkを活用したログ管理システム
Embulkを活用したログ管理システムEmbulkを活用したログ管理システム
Embulkを活用したログ管理システムAkihiro Ikezoe
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!Kouhei Sutou
 
初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )
初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )
初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )Ryuichi Tokugami
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
Web技術勉強会 第38回
Web技術勉強会 第38回Web技術勉強会 第38回
Web技術勉強会 第38回龍一 田中
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームはじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームTaisuke Fukuno
 
カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディングAkihiro Okuno
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLTaisuke Fukuno
 
CouchDBをヤラナイカ
CouchDBをヤラナイカCouchDBをヤラナイカ
CouchDBをヤラナイカMakoto Ohnami
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 

La actualidad más candente (20)

OSS についてあれこれ
OSS についてあれこれOSS についてあれこれ
OSS についてあれこれ
 
テスト用ライブラリ power-assert
テスト用ライブラリ power-assertテスト用ライブラリ power-assert
テスト用ライブラリ power-assert
 
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
 
Enumはデキる子 ~ case .Success(let value): ~
 Enumはデキる子 ~ case .Success(let value): ~ Enumはデキる子 ~ case .Success(let value): ~
Enumはデキる子 ~ case .Success(let value): ~
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索
 
Level dbを試した
Level dbを試したLevel dbを試した
Level dbを試した
 
Embulkを活用したログ管理システム
Embulkを活用したログ管理システムEmbulkを活用したログ管理システム
Embulkを活用したログ管理システム
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
 
初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )
初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )
初めてのSimpleDB (2013-06-22 JAWS-UG 大阪 第8回 )
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
mysqlftppc 紹介
mysqlftppc 紹介mysqlftppc 紹介
mysqlftppc 紹介
 
Web技術勉強会 第38回
Web技術勉強会 第38回Web技術勉強会 第38回
Web技術勉強会 第38回
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲームはじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
 
カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディング
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
 
CouchDBをヤラナイカ
CouchDBをヤラナイカCouchDBをヤラナイカ
CouchDBをヤラナイカ
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 

20121123_bulkloaderを使ってみよう@GDG中国

  • 3. Pythonの話をします!! (ゝω・) テヘペロ
  • 6. 注意事項 ● 詳しい設定は公式サイトを・・・ ● 「GAE bulkloader」で検索して下さい
  • 7. なんぞ? ● GAE/Py(Python2系) ● Datastoreのデータをダウンロード ● Datastoreにデータをアップロード ● 大量データも動く
  • 8. いいところ ● XMLとかCSVとか使える ● マスタデータを事前に投入できる ● GAE/Jアプリ用のデータも作れる
  • 9. 設定方法〜主キー〜 - property: __key__ external_name: key ← JavaのModelで設定した名前 export_transform: transform.key_id_or_name_as_string ↑ Keyクラスの値を文字列でダウンロード import_transform: transform.none_if_empty(long) ↑ IDの値をKeyとして設定(空だったら自動設定) 同じidだったら更新される(ハズ)
  • 10. 設定方法〜外部キー〜 - property: modelRef external_name: modelRef ← JavaのModelで設定した名前 export_transform: transform.key_id_or_name_as_string ↑ ModelRefで設定しているKeyクラスの値を文字列で import_transform: transform.create_foreign_key( 'KIND名', key_is_id=True) ↑ どのKINDの主キーとして設定するか (Keyはidかnameか)
  • 11. 設定方法〜祖先パス〜 - property: __key__ external_name: key export_transform: transform.key_id_or_name_as_string import_transform: transform.create_deep_key( ('先祖KIND名', '先祖のキーを表すプロパティ名',True), ('KIND名', 'キーを表すプロパティ名',True) )
  • 12. 設定方法〜ラムダ式〜 - property: list external_name: list export_transform: "lambda li: ['_'.join(s) for s in li]" import_transform: "lambda str: str.split('_')"
  • 13. 設定方法〜ラムダ式2〜 - property: keyList external_name: keyList export_transform: "lambda li: ['_'.join( transform.key_id_or_name_as_string(li) for s in li]" import_transform: "lambda str: [ transform.create_foreign_key('KIND名', key_is_id=True (s) for s in str.split('_')]"
  • 14. 困った事 ● データ削除は管理画面で。。。 ● 大量データの更新には時間が。。。 ● キー発番ルールがわからん;; ● bulkloaderの設定がPython・・・ ● 空のリストのbulkloaderの設定が;;