この記事は GiXo アドベントカレンダー の 7日目の記事です。
昨日は、Platform Engineering チーム紹介 2021でした。
Technology Div. の緒方です。最近のメインの業務はデータ加工です。
データを加工する前段階として欠かせないのがデータ受領です。現在携わっているプロジェクトでも何度もお客様からデータを受領しており、継続的にデータを受領していく中でデータ受領に関する知見が溜まってきました。
そこでこの記事ではプロジェクトをスムーズに進めるためにデータ受領時に気を付けるポイントをご紹介します。
業務上必ず発生するデータ受領
GiXoではお客様からデータをお預かりして加工し、分析等で価値を生み出しています。お預かりするデータはその容量の大きさもさることながら、その種類が数十種類、時には数百種類にも及ぶことがあります。
データ受領はデータ加工に先立って必ず発生する業務です。そしてしばしば意図しないデータを受領してプロジェクトの進行を遅らせることがある厄介な業務でもあります。
プロジェクトをスムーズに進行するためにはデータを正しく受領することはとても重要です。どのようなデータをどのように渡していただくのか、事前にお客様と認識を合わせることで意図しないデータを受領するのを防ぎやすくなります。
それでは具体的にどのようなポイントに気をつければ良いかご紹介します。
データを取り巻く環境について
どのクラウドサービスを利用するか
今どきはクラウドサービスを利用してデータの受け渡しをすることがほとんどです。
GiXo では特に GCP を使うことが多いため、容量の大きいデータは GCS に置いていただくことが多いです。GCS にデータを置けば BigQuery でもローカル環境でもコマンドラインからデータを移動できるため受領後の利便性が高くなります。
状況に応じて取引先が利用しているサービスを利用することもあります。取引先が使い慣れているサービスを利用する利点としては、取引先目線でスムーズにデータを受け渡すことが可能な点です。ただし一般論として新しいサービスを利用すると少なからず慣れるための時間がかかり、また事前に把握することが困難なトラブルが生じる可能性もあります。
GiXo においては触れたことのない技術を使える機会があると知的好奇心の旺盛なメンバーからぜひ使ってみたいという声があがり、すぐに新しいサービスに適応して柔軟な対応を実現しています。新しい技術を積極的に取り入れることでメンバーの技術力、ひいては会社としての技術力が向上し、より柔軟な対応が可能になっています。
結論としては基本的には自社が慣れているサービスを使うべきでしょう。ただし取引先の制約上使えないこともあるほか、新しい技術を取り入れていくことで会社全体としての技術力が上がる効果も狙えるため取引先に合わせることもあります。制約やメンバーの学習意欲、会社の技術に関する方向性を考慮して使用するサービスを判断します。
だれがどのような権限を持つか
データの受領に限った話ではありませんが、権限のあるべき姿は確認しておきます。過剰な権限をつけると予期せぬトラブルが生じる可能性があります。特に権限を持つ人間に以下の内容が1つでも当てはまるならトラブルが生じる可能性が格段に上がります。
- セキュリティに対する意識が弱い
- 利用しているサービスへの理解が浅い
- 「権限」という概念への理解が浅い
- プロジェクトへの関与が薄い
不適切な権限設定によるトラブルは今頃世の中のアドベントカレンダーにたくさんの記事が上がっていることでしょう。特に削除や上書きができるような権限の付与や保持には十分お気を付けください。
ファイルやフォルダの名称
例えば GCS を使ってデータ受領をすることになり、バケットも作成したとします。そのバケットを継続的に利用していく場合にはフォルダ構成やファイルの命名規則を決めておいた方がよいでしょう。
バケットのみの指定ではその直下に多種多様なデータを置くことが可能なため、データが溜まってくると検索性も視認性も落ちてきます。またお客様にファイルの置き場所について悩ませてしまったり確認の手間をかけてしまったりしかねません。
双方がスムーズにデータを出し入れするためにも積極的に自分から指定すべきです。
データそのものについての確認
データ内の個人情報
個人情報が含まれているかどうかは大事な論点です。どのようなものが個人情報なのかを双方によく確認し、データをのように取り扱うべきかは、必ず取引先と十分に相談したうえで、秘密保持契約ならびにデータ取り扱いに関する書面を締結します。
また GiXo ではそもそも個人情報は受け取らない方針であり、データに個人情報が含まれている場合に、個人情報の部分だけをマスクして受領することもあります。
GiXo はPマークを保有しており、個人情報を含むデータは決められたルールにのっとり適切に取り扱っております。
データの値の範囲
以下を確認しておくと受領したデータそのものが誤っていることに気付きやすくなります。
- データの中身の期間
- 例えばトランザクションの日付が2021年12月1日から12月31日までで1日も欠かさず入っているなど。
- データの数値の範囲
- おおむね最大値はどれくらいか
- マイナスの値は入りうるか
- 0が入りうるか
データの中身を見たら全然違う期間のデータが入っていたとか、中身がスカスカだったなどはよくある話です。どんなデータなのか事前に確認しておくとよいでしょう。
その他
以下のこともできれば確認しておきましょう。
- データの大きさ
- データの取得タイミング
- 複数の種類を受領する時に、それぞれのデータの取得タイミングがずれることによってデータの整合性が取れなくなることがあります。タイミングをどの時点にするか決めておくとトラブルを防ぎやすくなります。
- エンコード
- 指定可能であれば utf8 などを指定しておくのが無難です。
- zip などの圧縮の有無および圧縮形式
- 圧縮されて困るようであれば圧縮しないように伝えておきます。
まとめ
この記事で紹介したのは最低限抑えるべきポイントです。実際のプロジェクトを進める時にはお客様とのより細かい認識合わせが必要になります。またどれだけ認識合わせをしても指定した形でデータが来ないこともあります。人間なので仕方ありません。めげずに頑張っていきましょう。
明日は「Google Cloud と AWS の印象の違いについて雑感」を公開予定です。
Satoshi Ogata
Data-Informed 事業本部 / Technology Div. 所属
Data Engineer。Among Us で日々議論力を鍛えています。好きなクルーは白。